|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectedu.memphis.ccrg.lida.framework.shared.UnmodifiableNodeStructureImpl
public class UnmodifiableNodeStructureImpl
An immutable NodeStructureImpl. Throws UnsupportedOperationException if any methods
which modify NodeStructureImpl are called.
| Constructor Summary | |
|---|---|
UnmodifiableNodeStructureImpl(NodeStructure src)
Default Constructor. |
|
UnmodifiableNodeStructureImpl(NodeStructure src,
boolean shouldCopy)
Copy Constructor. |
|
| Method Summary | |
|---|---|
Link |
addDefaultLink(int idSource,
ExtendedId idSink,
LinkCategory type,
double activation,
double removalThreshold)
Creates and adds a new Link of default type with specified attributes. |
Link |
addDefaultLink(int idSource,
int idSink,
LinkCategory type,
double activation,
double removalThreshold)
Creates and adds a new Link of default type with specified attributes. |
Link |
addDefaultLink(Link l)
Adds a copy, of default link type, based on the specified Link, to this NodeStructure. |
Link |
addDefaultLink(Node source,
Linkable sink,
LinkCategory category,
double activation,
double removalThreshold)
Creates and adds a new Link of default type with specified attributes. |
java.util.Collection<Link> |
addDefaultLinks(java.util.Collection<Link> links)
Copies specified Links and then adds the copies to this NodeStructure. |
Node |
addDefaultNode(Node n)
Adds a copy of specified Node to this NodeStructure. |
Node |
addDefaultNode(java.lang.String label,
double a,
double rt)
Creates, adds and returns a new Node of default type with specified attributes. |
java.util.Collection<Node> |
addDefaultNodes(java.util.Collection<Node> nodes)
|
Link |
addLink(Link l,
java.lang.String linkType)
Adds copy of specified Link. |
Link |
addLink(java.lang.String type,
int srcId,
ExtendedId snkId,
LinkCategory cat,
double a,
double rt)
Creates and adds a new Link of specified type with specified attributes. |
Link |
addLink(java.lang.String type,
Node src,
Linkable sink,
LinkCategory cat,
double a,
double rt)
Creates and adds a new Link of specified type with specified attributes. |
Node |
addNode(Node n,
java.lang.String factoryType)
Add a Node of a specified type to this NodeStructure. If a Node with the same id already exists in the NodeStructure the existing Node will have its activation updated. |
Node |
addNode(java.lang.String type,
java.lang.String label,
double a,
double rt)
Creates, adds and returns a new Node of specified type with specified attributes. |
void |
clearLinks()
Removes all links from this NodeStructure. |
void |
clearNodeStructure()
Removes all nodes and links from this NodeStructure. |
boolean |
containsLink(ExtendedId id)
Returns whether this NodeStructure contains Link with specified ExtendedId. |
boolean |
containsLink(Link l)
Returns whether this NodeStructure contains specified Link. |
boolean |
containsLinkable(ExtendedId id)
Returns whether this NodeStructure contains Linkable with specified ExtendedId. |
boolean |
containsLinkable(Linkable l)
Returns whether this NodeStructure contains specified Linkable. |
boolean |
containsNode(ExtendedId id)
Returns whether this NodeStructure contains Node with specified ExtendedId. |
boolean |
containsNode(int id)
Returns whether this NodeStructure contains Node with specified id. |
boolean |
containsNode(Node n)
Returns whether this NodeStructure contains specified Node. |
NodeStructure |
copy()
Returns a deep copy of this NodeStructure. |
void |
decayNodeStructure(long ticks)
Decays the Linkables of this NodeStructure. |
boolean |
equals(java.lang.Object o)
Returns true if both NodeStructures have the same nodes and links. |
java.util.Set<Link> |
getAttachedLinks(Linkable l)
Gets all Link objects directly connected to specified Linkable. |
java.util.Set<Link> |
getAttachedLinks(Linkable linkable,
LinkCategory cat)
Gets all Links directly connected to specified Linkable with specified LinkCategory |
java.util.Map<Linkable,Link> |
getConnectedSinks(Node n)
Returns a Map of all sink Linkable objects connected to specified Node. |
java.util.Map<Node,Link> |
getConnectedSources(Linkable linkable)
Returns a Map of all Nodes connected to specified Linkable as a source. |
java.lang.String |
getDefaultLinkType()
Gets default Link type of the NodeStructure. |
java.lang.String |
getDefaultNodeType()
Gets default Node type of the NodeStructure. |
Link |
getLink(ExtendedId ids)
Gets Link with specified ExtendedId if present. |
Linkable |
getLinkable(ExtendedId eid)
Gets Linkable with specified ExtendedId. |
int |
getLinkableCount()
Gets the number of linkables (nodes and links). |
java.util.Map<Linkable,java.util.Set<Link>> |
getLinkableMap()
Returns a map of all the Linkable objects currently in the NodeStructure and their attached links. |
java.util.Collection<Linkable> |
getLinkables()
Returns all Linkables, all Nodes and Links, currently in this NodeStructure. |
int |
getLinkCount()
Gets the number of links. |
java.util.Collection<Link> |
getLinks()
Returns the Links of this NodeStructure. |
java.util.Set<Link> |
getLinks(LinkCategory cat)
Returns all Links of this NodeStructure with specified LinkCategory. |
Node |
getNode(ExtendedId eid)
Returns a copy of the node in this NodeStructure with specified ExtendedId. |
Node |
getNode(int id)
Returns a copy of the node in this NodeStructure with specified id. |
int |
getNodeCount()
Gets the number of nodes. |
java.util.Collection<Node> |
getNodes()
Returns all Nodes. |
NodeStructure |
getSubgraph(java.util.Collection<Node> nodes,
int d)
Returns a copy of a subgraph of this NodeStructure. |
NodeStructure |
getSubgraph(java.util.Collection<Node> nodes,
int d,
double threshold)
Returns a copy of a subgraph of this NodeStructure. |
int |
hashCode()
|
void |
mergeWith(NodeStructure ns)
Merges specified NodeStructure into this one. |
void |
removeLink(Link l)
Removes specified Link if present. |
void |
removeLinkable(ExtendedId id)
Removes Linkable with specified ExtendedId if present. |
void |
removeLinkable(Linkable l)
Removes specified Linkable if present. |
void |
removeNode(Node n)
Removes specified Node if present. |
java.lang.String |
toString()
|
| Methods inherited from class java.lang.Object |
|---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
| Constructor Detail |
|---|
public UnmodifiableNodeStructureImpl(NodeStructure src)
src - supplied NodeStructure
public UnmodifiableNodeStructureImpl(NodeStructure src,
boolean shouldCopy)
src - supplied NodeStructureshouldCopy - If true, the supplied NodeStructure will be copied. Otherwise supplied NodeStructure
will be used directly.| Method Detail |
|---|
public boolean equals(java.lang.Object o)
equals in class java.lang.Objecto - ObjectObject.equals(java.lang.Object)public int hashCode()
hashCode in class java.lang.Objectpublic NodeStructure copy()
NodeStructureNodeStructure.
copy in interface NodeStructureNodeStructurepublic Link addDefaultLink(Link l)
NodeStructureLink, to this NodeStructure. If Link with the same
id already exists then the old Link's activation is updated.
Copied link will have the default link type of this NodeStructure when
it is added.
addDefaultLink in interface NodeStructurel - Link to copy and add.
java.lang.UnsupportedOperationException - Cannot modify this object once created.
public Link addDefaultLink(int idSource,
ExtendedId idSink,
LinkCategory type,
double activation,
double removalThreshold)
NodeStructure
addDefaultLink in interface NodeStructureidSource - id of link's sourceidSink - ExtendedId of link's sinktype - Link's LinkCategoryactivation - initial link activationremovalThreshold - amount of activation Link must maintain to remain in this NodeStructure after decaying.
java.lang.UnsupportedOperationException - Cannot modify this object once created.
public Link addDefaultLink(int idSource,
int idSink,
LinkCategory type,
double activation,
double removalThreshold)
NodeStructure
addDefaultLink in interface NodeStructureidSource - id of link's sourceidSink - id of link's sinktype - Link's LinkCategoryactivation - initial link activationremovalThreshold - amount of activation Link must maintain to remain in this NodeStructure after decaying.
java.lang.UnsupportedOperationException - Cannot modify this object once created.public java.util.Collection<Link> addDefaultLinks(java.util.Collection<Link> links)
NodeStructureNodeStructure when
they are added.
Note if Links in supplied Collection link to each other then this method does NOT guarantee
that all Links will be added properly. Links should be added one at a time in this case after
the dependent links are already present.
addDefaultLinks in interface NodeStructurelinks - Links to copy and add.
java.lang.UnsupportedOperationException - Cannot modify this object once created.public Node addDefaultNode(Node n)
NodeStructureNode to this NodeStructure. The copy will be of the default
type of this NodeStructure, NOT of the type of the specified node. If Node with the same
id already exists the the old node's activation is updated ONLY IF it is higher than the existing activation.
addDefaultNode in interface NodeStructuren - Node to add.
java.lang.UnsupportedOperationException - Cannot modify this object once created.
public Link addLink(Link l,
java.lang.String linkType)
NodeStructure
addLink in interface NodeStructurel - original LinklinkType - type of copied Link
Link or null if such a link cannot be created.
java.lang.UnsupportedOperationException - Cannot modify this object once created.
public Node addNode(Node n,
java.lang.String factoryType)
NodeStructure
addNode in interface NodeStructuren - NodefactoryType - name of node's type in ElementFactory
java.lang.UnsupportedOperationException - Cannot modify this object once created.public java.util.Collection<Node> addDefaultNodes(java.util.Collection<Node> nodes)
addDefaultNodes in interface NodeStructurenodes - Node to be added.
java.lang.UnsupportedOperationException - Cannot modify this object once created.NodeStructure.addDefaultNode(Node)public void removeLink(Link l)
NodeStructureLink if present.
removeLink in interface NodeStructurel - Link to remove.
java.lang.UnsupportedOperationException - Cannot modify this object once created.public void removeLinkable(Linkable l)
NodeStructureLinkable if present.
removeLinkable in interface NodeStructurel - Linkable to remove.
java.lang.UnsupportedOperationException - Cannot modify this object once created.public void removeNode(Node n)
NodeStructureNode if present.
removeNode in interface NodeStructuren - Node to remove.
java.lang.UnsupportedOperationException - Cannot modify this object once created.public void removeLinkable(ExtendedId id)
NodeStructureLinkable with specified ExtendedId if present.
removeLinkable in interface NodeStructureid - ExtendedId of Linkable to remove.
java.lang.UnsupportedOperationException - Cannot modify this object once created.public void clearLinks()
NodeStructureNodeStructure.
clearLinks in interface NodeStructurejava.lang.UnsupportedOperationException - Cannot modify this object once created.public void clearNodeStructure()
NodeStructure
clearNodeStructure in interface NodeStructurejava.lang.UnsupportedOperationException - Cannot modify this object once created.public void mergeWith(NodeStructure ns)
NodeStructure
mergeWith in interface NodeStructurens - NodeStructure
java.lang.UnsupportedOperationException - Cannot modify this object once created.
public Link addDefaultLink(Node source,
Linkable sink,
LinkCategory category,
double activation,
double removalThreshold)
NodeStructure
addDefaultLink in interface NodeStructuresource - Link's source Nodesink - Link's sink, a Node or a Linkcategory - Link's LinkCategoryactivation - initial link activationremovalThreshold - amount of activation Link must maintain to remain in this NodeStructure after decaying.
java.lang.UnsupportedOperationException - Cannot modify this object once created.
public Node addDefaultNode(java.lang.String label,
double a,
double rt)
NodeStructureNode of default type with specified attributes.
addDefaultNode in interface NodeStructurelabel - label of new Nodea - initial activation of new Nodert - initial removal threshold of new Node
Node added to the NodeStructure or null
java.lang.UnsupportedOperationException - Cannot modify this object once created.
public Link addLink(java.lang.String type,
int srcId,
ExtendedId snkId,
LinkCategory cat,
double a,
double rt)
NodeStructureLink of specified type with specified attributes. Source and sink must
already be in this NodeStructure.
addLink in interface NodeStructuretype - Factory type of the link to be createdsrcId - id of link's sourcesnkId - ExtendedId of link's sinkcat - Link's LinkCategorya - initial link activationrt - removal threshold, amount of activation Link must maintain to remain in this NodeStructure after decaying.
java.lang.UnsupportedOperationException - Cannot modify this object once created.
public Node addNode(java.lang.String type,
java.lang.String label,
double a,
double rt)
NodeStructureNode of specified type with specified attributes.
addNode in interface NodeStructuretype - Factory type of new Nodelabel - label of new Nodea - initial activation of new Nodert - initial removal threshold of new Node
Node added to the NodeStructure or null
java.lang.UnsupportedOperationException - Cannot modify this object once created.
public Link addLink(java.lang.String type,
Node src,
Linkable sink,
LinkCategory cat,
double a,
double rt)
NodeStructureLink of specified type with specified attributes. Source and sink must
already be in this NodeStructure.
addLink in interface NodeStructuretype - Factory type of the link to be createdsrc - the link's source Nodesink - the link's sink Linkablecat - the link's LinkCategorya - initial link activationrt - removal threshold, amount of activation Link must maintain to remain in this NodeStructure after decaying.
java.lang.UnsupportedOperationException - Cannot modify this object once created.public void decayNodeStructure(long ticks)
NodeStructureLinkables of this NodeStructure.
decayNodeStructure in interface NodeStructureticks - the number of ticks to decay for.
java.lang.UnsupportedOperationException - Cannot modify this object once created.public boolean containsLink(Link l)
NodeStructure
containsLink in interface NodeStructurel - Link checked for.
public boolean containsLink(ExtendedId id)
NodeStructureExtendedId.
containsLink in interface NodeStructureid - Link checked for.
Link with the same ExtendedId.public boolean containsLinkable(Linkable l)
NodeStructureLinkable.
containsLinkable in interface NodeStructurel - Linkable checked for.
Linkable with the same ExtendedId.public boolean containsLinkable(ExtendedId id)
NodeStructureLinkable with specified ExtendedId.
containsLinkable in interface NodeStructureid - Linkable checked for.
Linkable with the same ExtendedId.public boolean containsNode(Node n)
NodeStructure
containsNode in interface NodeStructuren - Node checked for.
public boolean containsNode(int id)
NodeStructure
containsNode in interface NodeStructureid - id of Node checked for.
public boolean containsNode(ExtendedId id)
NodeStructure
containsNode in interface NodeStructureid - ExtendedId of Node checked for.
public java.util.Set<Link> getAttachedLinks(Linkable l)
NodeStructureLink objects directly connected to specified Linkable.
getAttachedLinks in interface NodeStructurel - the Linkable whose attached links will be returned
UnmodifiableSet of all Links connected to specified Linkable
public java.util.Set<Link> getAttachedLinks(Linkable linkable,
LinkCategory cat)
NodeStructureLinks directly connected to specified Linkable with specified LinkCategory
getAttachedLinks in interface NodeStructurelinkable - a Linkablecat - LinkCategory
public java.util.Map<Linkable,Link> getConnectedSinks(Node n)
NodeStructureMap of all sink Linkable objects connected to specified Node.
The keys of the map are the connected sinks and the values are the Links connecting the sinks to the specified Node.
getConnectedSinks in interface NodeStructuren - supplied node
public java.util.Map<Node,Link> getConnectedSources(Linkable linkable)
NodeStructureMap of all Nodes connected to specified Linkable as a source.
The keys of the map are the connected sources and the values are the Links connecting the sources to the specified Linkable
getConnectedSources in interface NodeStructurelinkable - the Linkable whose connected sources will be returned
Map of all sources connected to lnk and the links connecting them to lnkpublic java.lang.String getDefaultLinkType()
NodeStructureLink type of the NodeStructure.
getDefaultLinkType in interface NodeStructureLink objects in the NodeStructurepublic java.lang.String getDefaultNodeType()
NodeStructureNode type of the NodeStructure.
getDefaultNodeType in interface NodeStructureNode objects in the NodeStructurepublic Link getLink(ExtendedId ids)
NodeStructureLink with specified ExtendedId if present.
getLink in interface NodeStructureids - ExtendedId of sought Link
public int getLinkCount()
NodeStructure
getLinkCount in interface NodeStructurepublic Linkable getLinkable(ExtendedId eid)
NodeStructureLinkable with specified ExtendedId.
getLinkable in interface NodeStructureeid - ExtendedId
public int getLinkableCount()
NodeStructure
getLinkableCount in interface NodeStructureLinkable objects currently in the NodeStructurepublic java.util.Map<Linkable,java.util.Set<Link>> getLinkableMap()
NodeStructureLinkable objects currently in the NodeStructure and their attached links.
getLinkableMap in interface NodeStructureUnmodifiableMap of the Linkable objects in this NodeStructure and their attached links.public java.util.Collection<Linkable> getLinkables()
NodeStructureNodeStructure.
getLinkables in interface NodeStructurepublic java.util.Collection<Link> getLinks()
NodeStructure
getLinks in interface NodeStructureUnmodifiableCollection of all Linkspublic java.util.Set<Link> getLinks(LinkCategory cat)
NodeStructureLinkCategory.
getLinks in interface NodeStructurecat - the LinkCategory to search for
LinkCategorypublic Node getNode(int id)
NodeStructure
getNode in interface NodeStructureid - id of node
public Node getNode(ExtendedId eid)
NodeStructureExtendedId.
getNode in interface NodeStructureeid - ExtendedId of node
public int getNodeCount()
NodeStructure
getNodeCount in interface NodeStructurepublic java.util.Collection<Node> getNodes()
NodeStructureNodes.
getNodes in interface NodeStructureNodes in this NodeStructurepublic java.lang.String toString()
toString in class java.lang.Object
public NodeStructure getSubgraph(java.util.Collection<Node> nodes,
int d)
NodeStructureNodeStructure.
The subgraph will contain all specified nodes with non-zero activation if
they are currently present in the NodeStructure.
Additionally all other nodes having distance, the number of links, less or equal to d from the specified nodes and
that have non-zero activation are part of the subgraph.
If a Node has non-zero activation then the depth-first search will not continue further from that Node.
Finally all links that connect two Linkable elements that are both d or less from the specified nodes are included in the subgraph.
getSubgraph in interface NodeStructurenodes - the nodes which will be the roots from which the subgraph will be formedd - the greatest distance a node can be from a specified nodes to be included in the subgraph
public NodeStructure getSubgraph(java.util.Collection<Node> nodes,
int d,
double threshold)
NodeStructureNodeStructure.
The subgraph will contain all specified nodes with activation at or above specified threshold if
they are currently present in the NodeStructure.
Additionally all other nodes having distance, the number of links, less or equal to d from the specified nodes and
that have sufficient activation are part of the subgraph.
If a Node has insufficient activation then the depth-first search will not continue further from that Node.
Finally all links that connect two Linkable elements that are both d or less from the specified nodes are included in the subgraph.
getSubgraph in interface NodeStructurenodes - the nodes which will be the roots from which the subgraph will be formedd - the greatest distance a node can be from a specified nodes to be included in the subgraphthreshold - activation requirement for a node to be part of the subgraph.
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||