public class NFEBasicModelManipulator extends java.lang.Object implements NFEManipulator
| Constructor and Description |
|---|
NFEBasicModelManipulator(NFEModel model) |
| Modifier and Type | Method and Description |
|---|---|
void |
applyFeatureClass(NFEFeature feature, NFEFeatureClass featClass)
Enforces all the attribute constraints defined in the feature class to the given feature
|
NFEFeature |
createFeature(NFEFeatureClass featClass)
Creates an empty Feature (with no Feature Element) of the specified Feature Class
|
NFEFeature |
createLineFeature(NFEFeatureClass featClass, JGeometry lineGeom, boolean enforceRules, double tolerance)
Creates a new line feature and its corresponding feature element(s) and network elements.
|
NFEFeatureElement |
createLineFeatureElement(NFELink link, double startPos, double endPos, long featureLayerId, long sequence)
Creates a new feature containing one line feature element.
|
NFELink |
createLink(NFENode startNode, NFENode endNode)
Creates a new link.
|
NFELink |
createLink(NFENode startNode, NFENode endNode, JGeometry geom)
Creates a new link.
|
NFENode |
createNode(double[] pointOrds)
Creates a new node.
|
NFENode |
createNode(JGeometry geom)
Creates a new node.
|
NFEFeature |
createPointFeature(NFEFeatureClass featClass, JGeometry pointGeom, boolean enforceRules, double tolerance)
Creates a new feature of the given feature class, containing only a PON feature element and its corresponding node.
|
NFEFeatureElement |
createPOLFeatureElement(NFELink link, double pos, long featureLayerId, long sequence)
Creates a new feature containing one PointOnLink feature element.
|
NFEFeatureElement |
createPONFeatureElement(NFENode node, long featureLayerId, long sequence)
Creates a new feature containing one PointOnNode feature element.
|
java.util.List<NFEFeature> |
createPredefinedConnectedPointFeatures(java.util.Collection<NFEPredefinedConnectedPoint> predefConnPoints, JGeometry lineGeom)
Creates the predefined points defined in the line feature class along a line geometry using the predefined points position percentages.
|
NFEFeature |
createStandalonePointFeature(NFEFeatureClass featClass, JGeometry pointGeom)
Creates a new feature of the given feature class, containing only a PON feature element and its corresponding node.
|
void |
enforceRules(java.util.Collection<NFEFeatureElement> featElems, double tolerance)
Detect interactions and enforces rules if needed for the given feature elements
|
java.util.Collection<NFEFeatureElement> |
getAdjacentFeatureElements(NFEFeatureElement featElem, int depth)
Gets all the feature elements connected to the given feature element
|
NFEConnectionManager |
getConnectionManager()
Gets the connection manager used by the current NFEModel
|
NFEInteractionEngine |
getInteractionEngine()
Gets the current interaction engine instance
|
NFERulesEngine |
getRulesEngine()
Gets the rules engine instance that is currently used by the model
|
boolean |
isAllowedPoint(double x, double y)
Tells whether a point is inside the boundaries defined by the model.
|
boolean |
isAllowedPoint(java.awt.geom.Point2D point)
Tells whether a point is inside the boundaries defined by the model.
|
boolean |
isAllowedRectangle(double x, double y, double w, double h)
Tells whether a rectangle is inside the boundaries defined by the model.
|
boolean |
isAllowedRectangle(java.awt.geom.Rectangle2D rectangle)
Tells whether a rectangle is inside the boundaries defined by the model.
|
static boolean |
isFeatureElementCompatibleWithFeatureClass(FeatureElement.FeatureElementType feType, NFEFeatureClass featureClass) |
static boolean |
isFeatureElementCompatibleWithNetworkElement(FeatureElement.FeatureElementType feType, NFENetworkElement networkElement) |
boolean |
isValidPoint(double x, double y)
Returns true if the point location is valid, false otherwise.
|
NFEFeatureElement |
moveFeatureElementToNetworkElement(NFEFeatureElement featElem, NFENetworkElement destNetElem, double destStartPos)
Changes a feature element's underlying network element
|
java.util.Collection<NFENetworkElement> |
removedDanglingNetworkElements(NFENetworkElement fromNetElem)
Removes any dangling network element connected to the given network element (including the passed network element if it is itself a dangling element).
|
boolean |
removeFeature(NFEFeature feature)
Removes a feature from the model along with its feature elements and network elements
|
boolean |
removeFeatureElement(NFEFeatureElement featElem)
Removes a feature element from its feature along with the network element where the feature element is placed.
|
void |
reverseLineFeatureDirection(NFEFeature lineFeature)
Reverse the direction of all the links containing feature elements of the given feature
|
void |
reverseLinkDirection(NFELink link)
Changes the direction of a link by changing the order of its line ordinates
|
void |
setFeatureActive(NFEFeature feature, boolean active)
Sets the feature's active property
|
void |
setFeatureBidirected(NFEFeature feature, boolean bidirected)
Sets whether a feature is bidirected or not
|
void |
setNetworkElementGeometry(NFENetworkElement netElem, JGeometry newGeom)
Sets a new geometry to the specified network element.
|
void |
setNetworkElementsGeometries(NFENetworkElement[] netElems, JGeometry[] newGeoms, boolean enforceRules, double tolerance)
Changes geometries to a group of network elements.
|
void |
updateLinkGeometry(NFELink link)
Updates the link's geometry so reflect the position of its start and end points.
|
public NFEBasicModelManipulator(NFEModel model)
public NFEConnectionManager getConnectionManager()
NFEManipulatorgetConnectionManager in interface NFEManipulatorpublic NFEInteractionEngine getInteractionEngine()
NFEManipulatorgetInteractionEngine in interface NFEManipulatorpublic boolean isAllowedPoint(java.awt.geom.Point2D point)
NFEManipulatorisAllowedPoint in interface NFEManipulatorpoint - a java point instance
public boolean isAllowedPoint(double x,
double y)
NFEManipulatorisAllowedPoint in interface NFEManipulatorx - the point's x ordinatey - the point's y ordinatepublic boolean isAllowedRectangle(java.awt.geom.Rectangle2D rectangle)
NFEManipulatorisAllowedRectangle in interface NFEManipulatorrectangle - a java rectangle instance
public boolean isAllowedRectangle(double x,
double y,
double w,
double h)
NFEManipulatorisAllowedRectangle in interface NFEManipulatorx - the rectangle's lower left corner x ordinatey - the rectangle's lower left corner y ordinatew - the rectangle's widthh - the rectangle's height
public boolean isValidPoint(double x,
double y)
NFEManipulatorisValidPoint in interface NFEManipulatorx - the x of the pointy - the y of the pointpublic java.util.Collection<NFENetworkElement> removedDanglingNetworkElements(NFENetworkElement fromNetElem)
NFEManipulatorremovedDanglingNetworkElements in interface NFEManipulatorfromNetElem - the network element from where the search beginspublic void reverseLinkDirection(NFELink link)
NFEManipulatorreverseLinkDirection in interface NFEManipulatorlink - a link instancepublic void setNetworkElementGeometry(NFENetworkElement netElem, JGeometry newGeom)
setNetworkElementGeometry in interface NFEManipulatornetElem -newGeom -public void setNetworkElementsGeometries(NFENetworkElement[] netElems, JGeometry[] newGeoms, boolean enforceRules, double tolerance)
NFEManipulatorsetNetworkElementsGeometries in interface NFEManipulatornetElems - An array of network elements which geometries will be changednewGeoms - An array of new geometries. The length of this array must be equal than the netElems array.enforceRules - if true, rules will be executed for the changed elementstolerance - tolerance used for detecting interactions if rules are enforcedpublic boolean removeFeature(NFEFeature feature)
NFEManipulatorremoveFeature in interface NFEManipulatorfeature - a feature instancepublic boolean removeFeatureElement(NFEFeatureElement featElem)
NFEManipulatorremoveFeatureElement in interface NFEManipulatorfeatElem - a feature element instancepublic void applyFeatureClass(NFEFeature feature, NFEFeatureClass featClass)
NFEManipulatorapplyFeatureClass in interface NFEManipulatorfeature - a feature instancefeatClass - a feature class instancepublic void setFeatureActive(NFEFeature feature, boolean active)
NFEManipulatorsetFeatureActive in interface NFEManipulatorfeature - a feature instanceactive - the active property valuepublic void setFeatureBidirected(NFEFeature feature, boolean bidirected)
NFEManipulatorsetFeatureBidirected in interface NFEManipulatorfeature - a feature instancebidirected - true for bidirectedpublic void reverseLineFeatureDirection(NFEFeature lineFeature)
NFEManipulatorreverseLineFeatureDirection in interface NFEManipulatorlineFeature - a line feature instancepublic NFEFeatureElement moveFeatureElementToNetworkElement(NFEFeatureElement featElem, NFENetworkElement destNetElem, double destStartPos)
NFEManipulatormoveFeatureElementToNetworkElement in interface NFEManipulatorfeatElem - the feature element to be modifieddestNetElem - the new underlying network elementdestStartPos - destination start position (in percent)public void updateLinkGeometry(NFELink link)
updateLinkGeometry in interface NFEManipulatorlink -public static boolean isFeatureElementCompatibleWithFeatureClass(FeatureElement.FeatureElementType feType, NFEFeatureClass featureClass)
public static boolean isFeatureElementCompatibleWithNetworkElement(FeatureElement.FeatureElementType feType, NFENetworkElement networkElement)
public NFEFeature createFeature(NFEFeatureClass featClass)
NFEManipulatorcreateFeature in interface NFEManipulatorfeatClass - A Feature Class instance. It is expected to be a well formed instance, containing a reference to the Feature Layer it belongs to.public NFEFeature createPointFeature(NFEFeatureClass featClass, JGeometry pointGeom, boolean enforceRules, double tolerance)
createPointFeature in interface NFEManipulatorfeatClass -pointGeom -enforceRules - if true, rules will be executed for this new point featuretolerance - tolerance used for detecting interactions if rules are enforcedpublic NFEFeature createStandalonePointFeature(NFEFeatureClass featClass, JGeometry pointGeom)
NFEManipulatorcreateStandalonePointFeature in interface NFEManipulatorfeatClass - a point feature classpointGeom - a java point instancepublic NFEFeature createLineFeature(NFEFeatureClass featClass, JGeometry lineGeom, boolean enforceRules, double tolerance)
createLineFeature in interface NFEManipulatorfeatClass -lineGeom -enforceRules - whether rules must be enforced after creating the featuretolerance - tolerance used for detecting interactions if rules are enforcedpublic java.util.List<NFEFeature> createPredefinedConnectedPointFeatures(java.util.Collection<NFEPredefinedConnectedPoint> predefConnPoints, JGeometry lineGeom)
createPredefinedConnectedPointFeatures in interface NFEManipulatorpredefConnPoints -lineGeom -public java.util.Collection<NFEFeatureElement> getAdjacentFeatureElements(NFEFeatureElement featElem, int depth)
NFEManipulatorgetAdjacentFeatureElements in interface NFEManipulatorfeatElem - a feature elementdepth - for how many levels connected elements must be retrievedpublic NFENode createNode(double[] pointOrds)
NFEManipulatorcreateNode in interface NFEManipulatorpointOrds - a point ordinates.public NFENode createNode(JGeometry geom)
NFEManipulatorcreateNode in interface NFEManipulatorgeom - a point geometrypublic NFELink createLink(NFENode startNode, NFENode endNode)
NFEManipulatorcreateLink in interface NFEManipulatorstartNode - the link's start node. The node must exist in the network.endNode - the link's end node. The node must exist in the network.public NFELink createLink(NFENode startNode, NFENode endNode, JGeometry geom)
NFEManipulatorcreateLink in interface NFEManipulatorstartNode - the link's start node. The node must exist in the network.endNode - the link's end node. The node must exist in the network.geom - a line string geometrypublic NFEFeatureElement createPONFeatureElement(NFENode node, long featureLayerId, long sequence)
NFEManipulatorcreatePONFeatureElement in interface NFEManipulatornode - the underlying nodefeatureLayerId - the ID of feature Layer where the feature belongssequence - the feature element's sequence numberpublic NFEFeatureElement createPOLFeatureElement(NFELink link, double pos, long featureLayerId, long sequence)
NFEManipulatorcreatePOLFeatureElement in interface NFEManipulatorlink - the underlying linkpos - position of the POL feature element. Relative to the link's lengthfeatureLayerId - the ID of feature Layer where the feature belongssequence - the feature element's sequence numberpublic NFEFeatureElement createLineFeatureElement(NFELink link, double startPos, double endPos, long featureLayerId, long sequence)
NFEManipulatorcreateLineFeatureElement in interface NFEManipulatorlink - the underlying linkstartPos - start position of the line feature element. Relative to the link's lengthendPos - end position of the line feature element. Relative to the link's lengthfeatureLayerId - the ID of the feature layer the feature belongssequence - the feature element's sequence numberpublic NFERulesEngine getRulesEngine()
NFEManipulatorgetRulesEngine in interface NFEManipulatorpublic void enforceRules(java.util.Collection<NFEFeatureElement> featElems, double tolerance)
NFEManipulatorenforceRules in interface NFEManipulatorfeatElems - a collection of feature elementstolerance - tolerance use for detecting interactions