blob: 354401921855a22b038fc55c764da23625b98870 [file] [log] [blame]
/**
* *******************************************************************************
* Copyright (c) 2018 Agence spatiale canadienne / Canadian Space Agency
* 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:
* Regent L'Archeveque - initial API and implementation
*
* SPDX-License-Identifier: EPL-1.0
* *******************************************************************************
*/
package org.eclipse.apogy.core.environment.earth.orbit.planner;
import org.eclipse.apogy.core.environment.earth.orbit.VisibilityPass;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.common.util.EMap;
import org.eclipse.emf.ecore.EObject;
/**
* <!-- begin-user-doc -->
* A representation of the model object '<em><b>Observation Analysis Planner Node</b></em>'.
* <!-- end-user-doc -->
*
* <p>
* The following features are supported:
* </p>
* <ul>
* <li>{@link org.eclipse.apogy.core.environment.earth.orbit.planner.ObservationAnalysisPlannerNode#getResult <em>Result</em>}</li>
* <li>{@link org.eclipse.apogy.core.environment.earth.orbit.planner.ObservationAnalysisPlannerNode#getId <em>Id</em>}</li>
* <li>{@link org.eclipse.apogy.core.environment.earth.orbit.planner.ObservationAnalysisPlannerNode#getPass <em>Pass</em>}</li>
* <li>{@link org.eclipse.apogy.core.environment.earth.orbit.planner.ObservationAnalysisPlannerNode#getParent <em>Parent</em>}</li>
* <li>{@link org.eclipse.apogy.core.environment.earth.orbit.planner.ObservationAnalysisPlannerNode#getChildren <em>Children</em>}</li>
* <li>{@link org.eclipse.apogy.core.environment.earth.orbit.planner.ObservationAnalysisPlannerNode#isRootNode <em>Root Node</em>}</li>
* <li>{@link org.eclipse.apogy.core.environment.earth.orbit.planner.ObservationAnalysisPlannerNode#getPlannerRootNode <em>Planner Root Node</em>}</li>
* <li>{@link org.eclipse.apogy.core.environment.earth.orbit.planner.ObservationAnalysisPlannerNode#getPlannerResult <em>Planner Result</em>}</li>
* <li>{@link org.eclipse.apogy.core.environment.earth.orbit.planner.ObservationAnalysisPlannerNode#getPlanner <em>Planner</em>}</li>
* <li>{@link org.eclipse.apogy.core.environment.earth.orbit.planner.ObservationAnalysisPlannerNode#getStatefulCostsMapEntries <em>Stateful Costs Map Entries</em>}</li>
* <li>{@link org.eclipse.apogy.core.environment.earth.orbit.planner.ObservationAnalysisPlannerNode#getCost <em>Cost</em>}</li>
* <li>{@link org.eclipse.apogy.core.environment.earth.orbit.planner.ObservationAnalysisPlannerNode#getCumulativeCost <em>Cumulative Cost</em>}</li>
* <li>{@link org.eclipse.apogy.core.environment.earth.orbit.planner.ObservationAnalysisPlannerNode#getFirstLevelNode <em>First Level Node</em>}</li>
* <li>{@link org.eclipse.apogy.core.environment.earth.orbit.planner.ObservationAnalysisPlannerNode#getLevel <em>Level</em>}</li>
* <li>{@link org.eclipse.apogy.core.environment.earth.orbit.planner.ObservationAnalysisPlannerNode#getSolutionDuration <em>Solution Duration</em>}</li>
* <li>{@link org.eclipse.apogy.core.environment.earth.orbit.planner.ObservationAnalysisPlannerNode#getPassDuration <em>Pass Duration</em>}</li>
* <li>{@link org.eclipse.apogy.core.environment.earth.orbit.planner.ObservationAnalysisPlannerNode#getTotalPassesDuration <em>Total Passes Duration</em>}</li>
* </ul>
*
* @see org.eclipse.apogy.core.environment.earth.orbit.planner.ApogyCoreEnvironmentEarthOrbitPlannerPackage#getObservationAnalysisPlannerNode()
* @model annotation="http://www.eclipse.org/apogy hasCustomClass='true'"
* @generated
*/
public interface ObservationAnalysisPlannerNode extends EObject {
/**
* Returns the value of the '<em><b>Result</b></em>' container reference.
* It is bidirectional and its opposite is '{@link org.eclipse.apogy.core.environment.earth.orbit.planner.ObservationAnalysisPlannerResult#getPlanRootNode <em>Plan Root Node</em>}'.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Result</em>' container reference isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Result</em>' container reference.
* @see #setResult(ObservationAnalysisPlannerResult)
* @see org.eclipse.apogy.core.environment.earth.orbit.planner.ApogyCoreEnvironmentEarthOrbitPlannerPackage#getObservationAnalysisPlannerNode_Result()
* @see org.eclipse.apogy.core.environment.earth.orbit.planner.ObservationAnalysisPlannerResult#getPlanRootNode
* @model opposite="planRootNode" transient="false"
* @generated
*/
ObservationAnalysisPlannerResult getResult();
/**
* Sets the value of the '{@link org.eclipse.apogy.core.environment.earth.orbit.planner.ObservationAnalysisPlannerNode#getResult <em>Result</em>}' container reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Result</em>' container reference.
* @see #getResult()
* @generated
*/
void setResult(ObservationAnalysisPlannerResult value);
/**
* Returns the value of the '<em><b>Id</b></em>' attribute.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Id</em>' attribute isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Id</em>' attribute.
* @see #setId(String)
* @see org.eclipse.apogy.core.environment.earth.orbit.planner.ApogyCoreEnvironmentEarthOrbitPlannerPackage#getObservationAnalysisPlannerNode_Id()
* @model unique="false"
* @generated
*/
String getId();
/**
* Sets the value of the '{@link org.eclipse.apogy.core.environment.earth.orbit.planner.ObservationAnalysisPlannerNode#getId <em>Id</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Id</em>' attribute.
* @see #getId()
* @generated
*/
void setId(String value);
/**
* Returns the value of the '<em><b>Pass</b></em>' reference.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Pass</em>' reference isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Pass</em>' reference.
* @see #setPass(VisibilityPass)
* @see org.eclipse.apogy.core.environment.earth.orbit.planner.ApogyCoreEnvironmentEarthOrbitPlannerPackage#getObservationAnalysisPlannerNode_Pass()
* @model
* @generated
*/
VisibilityPass getPass();
/**
* Sets the value of the '{@link org.eclipse.apogy.core.environment.earth.orbit.planner.ObservationAnalysisPlannerNode#getPass <em>Pass</em>}' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Pass</em>' reference.
* @see #getPass()
* @generated
*/
void setPass(VisibilityPass value);
/**
* Returns the value of the '<em><b>Parent</b></em>' container reference.
* It is bidirectional and its opposite is '{@link org.eclipse.apogy.core.environment.earth.orbit.planner.ObservationAnalysisPlannerNode#getChildren <em>Children</em>}'.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Parent</em>' container reference isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Parent</em>' container reference.
* @see #setParent(ObservationAnalysisPlannerNode)
* @see org.eclipse.apogy.core.environment.earth.orbit.planner.ApogyCoreEnvironmentEarthOrbitPlannerPackage#getObservationAnalysisPlannerNode_Parent()
* @see org.eclipse.apogy.core.environment.earth.orbit.planner.ObservationAnalysisPlannerNode#getChildren
* @model opposite="children" transient="false"
* annotation="http://www.eclipse.org/emf/2002/GenModel property='None'"
* @generated
*/
ObservationAnalysisPlannerNode getParent();
/**
* Sets the value of the '{@link org.eclipse.apogy.core.environment.earth.orbit.planner.ObservationAnalysisPlannerNode#getParent <em>Parent</em>}' container reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Parent</em>' container reference.
* @see #getParent()
* @generated
*/
void setParent(ObservationAnalysisPlannerNode value);
/**
* Returns the value of the '<em><b>Children</b></em>' containment reference list.
* The list contents are of type {@link org.eclipse.apogy.core.environment.earth.orbit.planner.ObservationAnalysisPlannerNode}.
* It is bidirectional and its opposite is '{@link org.eclipse.apogy.core.environment.earth.orbit.planner.ObservationAnalysisPlannerNode#getParent <em>Parent</em>}'.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Children</em>' containment reference list isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Children</em>' containment reference list.
* @see org.eclipse.apogy.core.environment.earth.orbit.planner.ApogyCoreEnvironmentEarthOrbitPlannerPackage#getObservationAnalysisPlannerNode_Children()
* @see org.eclipse.apogy.core.environment.earth.orbit.planner.ObservationAnalysisPlannerNode#getParent
* @model opposite="parent" containment="true"
* annotation="http://www.eclipse.org/emf/2002/GenModel property='None'"
* @generated
*/
EList<ObservationAnalysisPlannerNode> getChildren();
/**
* Returns the value of the '<em><b>Root Node</b></em>' attribute.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Root Node</em>' attribute isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Root Node</em>' attribute.
* @see org.eclipse.apogy.core.environment.earth.orbit.planner.ApogyCoreEnvironmentEarthOrbitPlannerPackage#getObservationAnalysisPlannerNode_RootNode()
* @model unique="false" transient="true" changeable="false" volatile="true" derived="true"
* @generated
*/
boolean isRootNode();
/**
* Returns the value of the '<em><b>Planner Root Node</b></em>' reference.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Planner Root Node</em>' reference isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Planner Root Node</em>' reference.
* @see org.eclipse.apogy.core.environment.earth.orbit.planner.ApogyCoreEnvironmentEarthOrbitPlannerPackage#getObservationAnalysisPlannerNode_PlannerRootNode()
* @model resolveProxies="false" transient="true" changeable="false" volatile="true" derived="true"
* @generated
*/
ObservationAnalysisPlannerNode getPlannerRootNode();
/**
* Returns the value of the '<em><b>Planner Result</b></em>' reference.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Planner Result</em>' reference isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Planner Result</em>' reference.
* @see org.eclipse.apogy.core.environment.earth.orbit.planner.ApogyCoreEnvironmentEarthOrbitPlannerPackage#getObservationAnalysisPlannerNode_PlannerResult()
* @model resolveProxies="false" transient="true" changeable="false" volatile="true" derived="true"
* @generated
*/
ObservationAnalysisPlannerResult getPlannerResult();
/**
* Returns the value of the '<em><b>Planner</b></em>' reference.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Planner</em>' reference isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Planner</em>' reference.
* @see org.eclipse.apogy.core.environment.earth.orbit.planner.ApogyCoreEnvironmentEarthOrbitPlannerPackage#getObservationAnalysisPlannerNode_Planner()
* @model resolveProxies="false" transient="true" changeable="false" volatile="true" derived="true"
* @generated
*/
ObservationAnalysisPlanner getPlanner();
/**
* Returns the value of the '<em><b>Stateful Costs Map Entries</b></em>' map.
* The key is of type {@link org.eclipse.apogy.core.environment.earth.orbit.planner.AbstractStatefulCostFunction<org.eclipse.apogy.core.environment.earth.orbit.planner.CostFunctionState>},
* and the value is of type {@link org.eclipse.apogy.core.environment.earth.orbit.planner.StatefulCostFunctionMapEntryValue},
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* Map that contains the Stateful cost function results.
* <!-- end-model-doc -->
* @return the value of the '<em>Stateful Costs Map Entries</em>' map.
* @see org.eclipse.apogy.core.environment.earth.orbit.planner.ApogyCoreEnvironmentEarthOrbitPlannerPackage#getObservationAnalysisPlannerNode_StatefulCostsMapEntries()
* @model mapType="org.eclipse.apogy.core.environment.earth.orbit.planner.StatefulCostFunctionMapEntry&lt;org.eclipse.apogy.core.environment.earth.orbit.planner.AbstractStatefulCostFunction&lt;org.eclipse.apogy.core.environment.earth.orbit.planner.CostFunctionState&gt;, org.eclipse.apogy.core.environment.earth.orbit.planner.StatefulCostFunctionMapEntryValue&gt;"
* @generated
*/
EMap<AbstractStatefulCostFunction<CostFunctionState>, StatefulCostFunctionMapEntryValue> getStatefulCostsMapEntries();
/**
* Returns the value of the '<em><b>Cost</b></em>' attribute.
* The default value is <code>"0"</code>.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* Cost of the current node. It corresponds to the sum of all applicable {@link StatelessCostFunctions} &
* {@link StatefulCostFunctions}.
* <!-- end-model-doc -->
* @return the value of the '<em>Cost</em>' attribute.
* @see org.eclipse.apogy.core.environment.earth.orbit.planner.ApogyCoreEnvironmentEarthOrbitPlannerPackage#getObservationAnalysisPlannerNode_Cost()
* @model default="0" unique="false" transient="true" changeable="false" volatile="true" derived="true"
* @generated
*/
double getCost();
/**
* Returns the value of the '<em><b>Cumulative Cost</b></em>' attribute.
* The default value is <code>"0"</code>.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* Cumulative cost including the cost of this node up to its first level node.
* <!-- end-model-doc -->
* @return the value of the '<em>Cumulative Cost</em>' attribute.
* @see org.eclipse.apogy.core.environment.earth.orbit.planner.ApogyCoreEnvironmentEarthOrbitPlannerPackage#getObservationAnalysisPlannerNode_CumulativeCost()
* @model default="0" unique="false" transient="true" changeable="false" volatile="true" derived="true"
* @generated
*/
double getCumulativeCost();
/**
* Returns the value of the '<em><b>First Level Node</b></em>' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* Returns the level 1 node. The root node (top node without parent) contains the first level nodes.
* <!-- end-model-doc -->
* @return the value of the '<em>First Level Node</em>' reference.
* @see org.eclipse.apogy.core.environment.earth.orbit.planner.ApogyCoreEnvironmentEarthOrbitPlannerPackage#getObservationAnalysisPlannerNode_FirstLevelNode()
* @model transient="true" changeable="false" volatile="true" derived="true"
* @generated
*/
ObservationAnalysisPlannerNode getFirstLevelNode();
/**
* Returns the value of the '<em><b>Level</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* Returns the node level.
* <!-- end-model-doc -->
* @return the value of the '<em>Level</em>' attribute.
* @see org.eclipse.apogy.core.environment.earth.orbit.planner.ApogyCoreEnvironmentEarthOrbitPlannerPackage#getObservationAnalysisPlannerNode_Level()
* @model unique="false" transient="true" changeable="false" volatile="true" derived="true"
* @generated
*/
int getLevel();
/**
* Returns the value of the '<em><b>Solution Duration</b></em>' attribute.
* The default value is <code>"0"</code>.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* Returns the solution duration processed from the to date of the last visibility pass (this node) and the from date of
* the first visibility pass (first level node).
* <!-- end-model-doc -->
* @return the value of the '<em>Solution Duration</em>' attribute.
* @see org.eclipse.apogy.core.environment.earth.orbit.planner.ApogyCoreEnvironmentEarthOrbitPlannerPackage#getObservationAnalysisPlannerNode_SolutionDuration()
* @model default="0" unique="false" transient="true" changeable="false" volatile="true" derived="true"
* annotation="http://www.eclipse.org/apogy units='ms'"
* @generated
*/
double getSolutionDuration();
/**
* Returns the value of the '<em><b>Pass Duration</b></em>' attribute.
* The default value is <code>"0"</code>.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* Returns the duration of the pass associated to the current node.
* <!-- end-model-doc -->
* @return the value of the '<em>Pass Duration</em>' attribute.
* @see org.eclipse.apogy.core.environment.earth.orbit.planner.ApogyCoreEnvironmentEarthOrbitPlannerPackage#getObservationAnalysisPlannerNode_PassDuration()
* @model default="0" unique="false" transient="true" changeable="false" volatile="true" derived="true"
* annotation="http://www.eclipse.org/apogy units='ms'"
* @generated
*/
double getPassDuration();
/**
* Returns the value of the '<em><b>Total Passes Duration</b></em>' attribute.
* The default value is <code>"0"</code>.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* Returns the sums of the duration of the current pass up to its first first level node pass.
* <!-- end-model-doc -->
* @return the value of the '<em>Total Passes Duration</em>' attribute.
* @see org.eclipse.apogy.core.environment.earth.orbit.planner.ApogyCoreEnvironmentEarthOrbitPlannerPackage#getObservationAnalysisPlannerNode_TotalPassesDuration()
* @model default="0" unique="false" transient="true" changeable="false" volatile="true" derived="true"
* annotation="http://www.eclipse.org/apogy units='ms'"
* @generated
*/
double getTotalPassesDuration();
} // ObservationAnalysisPlannerNode