blob: aedc48b6f6735f9b7f65f1c381518f7ebb1c56d6 [file] [log] [blame]
// PopulationLabel.java
package org.eclipse.stem.definitions.labels;
/*******************************************************************************
* Copyright (c) 2007 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
import org.eclipse.emf.common.util.URI;
import org.eclipse.stem.core.STEMURI;
import org.eclipse.stem.core.graph.StaticNodeLabel;
/**
* This interface defines a class in an EMF model for PopulationLabel.
*
* @model
*/
public interface PopulationLabel extends StaticNodeLabel {
/**
* This is the segment of the type URI that prefixes all other segments in a
* population label type URI.
*/
String URI_TYPE_POPULATION_LABEL_SEGMENT = URI_TYPE_LABEL_SEGMENT
+ "/population";
/**
* This is the type URI for population labels
*/
URI URI_TYPE_POPULATION_LABEL = STEMURI
.createTypeURI(URI_TYPE_POPULATION_LABEL_SEGMENT);
// These constants are identifiers of various "built-in" population types
/**
* Generic human population.
*
* @see #getPopulationIdentifier()
*/
String HUMAN = "human";
/**
* Human male population.
*
* @see #getPopulationIdentifier()
*/
String HUMAN_MALE = "human_male";
/**
* Human adult male population.
*
* @see #getPopulationIdentifier()
*/
String HUMAN_MALE_ADULT = "human_male_adult";
/**
* Human child male population.
*
* @see #getPopulationIdentifier()
*/
String HUMAN_MALE_CHILD = "human_male_child";
/**
* Human adult female population.
*
* @see #getPopulationIdentifier()
*/
String HUMAN_FEMALE_ADULT = "human_female_adult";
/**
* Human child female population.
*
* @see #getPopulationIdentifier()
*/
String HUMAN_FEMALE_CHILD = "human_female_child";
/**
* Generic bird population.
*
* @see #getPopulationIdentifier()
*/
String BIRD = "bird";
/**
* Duck population.
*
* @see #getPopulationIdentifier()
*/
String BIRD_DUCK = "bird_duck";
/**
* Chicken population.
*
* @see #getPopulationIdentifier()
*/
String BIRD_CHICKEN = "bird_chicken";
/**
* Generic swine (pig) population.
*
* @see #getPopulationIdentifier()
*/
String SWINE = "swine";
/**
* Generic mosquito population.
*
* @see #getPopulationIdentifier()
*/
String MOSQUITO = "mosquito";
/**
* Anopheles mosquito population.
*
* @see #getPopulationIdentifier()
*/
String MOSQUITO_ANOPHELES = "mosquito_anopheles";
/**
* @return a string that is a non-NLS'd identifier of the population. e.g.
* "boys", "birds"
* @model
*/
String getPopulationIdentifier();
/**
* Sets the value of the '{@link org.eclipse.stem.definitions.labels.PopulationLabel#getPopulationIdentifier <em>Population Identifier</em>}' attribute.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @param value the new value of the '<em>Population Identifier</em>' attribute.
* @see #getPopulationIdentifier()
* @generated
*/
void setPopulationIdentifier(String value);
/**
* @return the current population value
* @model volatile="true" transient="true" changeable="false"
* resolveProxies="false"
*/
PopulationLabelValue getCurrentPopulationValue();
/**
* This value can be used to compute a more accurate population density for
* cases where the area of a node might be quite large while the actual
* distribution of population members is quite small. This would be the case
* for instance if a node represented a large empty area with a few cities
* and towns (e.g., The State of Wyoming in the United States). If this
* optional value value is set, then it represents the smaller area that is
* actually populated. Typically, this value would not be set and the
* population density would be computed by using the actual area of the
* region that this label labels.
*
* @return the actual area that is populated (square kilometers).
* @model default="0"
*/
double getPopulatedArea();
/**
* Sets the value of the '{@link org.eclipse.stem.definitions.labels.PopulationLabel#getPopulatedArea <em>Populated Area</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Populated Area</em>' attribute.
* @see #getPopulatedArea()
* @generated
*/
void setPopulatedArea(double value);
/**
* Returns the value of the '<em><b>Valid Year</b></em>' attribute.
* The default value is <code>"2006"</code>.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Valid Year</em>' attribute isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Valid Year</em>' attribute.
* @see #setValidYear(int)
* @see org.eclipse.stem.definitions.labels.LabelsPackage#getPopulationLabel_ValidYear()
* @model default="2006"
* @generated
*/
int getValidYear();
/**
* Sets the value of the '{@link org.eclipse.stem.definitions.labels.PopulationLabel#getValidYear <em>Valid Year</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Valid Year</em>' attribute.
* @see #getValidYear()
* @generated
*/
void setValidYear(int value);
} // PopulationLabel