org.sdmlib.models.objects.util.GenericGraphPO Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of SDMLib Show documentation
Show all versions of SDMLib Show documentation
SDMLib is a light weight modeling library. SDMLib intentionally comes without any tool or editor.
package org.sdmlib.models.objects.util;
import org.sdmlib.models.objects.GenericGraph;
import org.sdmlib.models.pattern.LinkConstraint;
import org.sdmlib.models.pattern.PatternObject;
import org.sdmlib.models.objects.util.GenericObjectPO;
import org.sdmlib.models.objects.GenericObject;
import org.sdmlib.models.objects.util.GenericGraphPO;
import org.sdmlib.models.objects.util.GenericLinkPO;
import org.sdmlib.models.objects.GenericLink;
public class GenericGraphPO extends PatternObject
{
public GenericGraphPO(){
newInstance(CreatorCreator.createIdMap("PatternObjectType"));
}
public GenericGraphPO(GenericGraph... hostGraphObject) {
if(hostGraphObject==null || hostGraphObject.length<1){
return;
}
newInstance(CreatorCreator.createIdMap("PatternObjectType"), hostGraphObject);
}
public GenericGraphSet allMatches()
{
GenericGraphSet matches = new GenericGraphSet();
while (this.getPattern().getHasMatch())
{
matches.add((GenericGraph) this.getCurrentMatch());
this.getPattern().findMatch();
}
return matches;
}
public GenericObjectPO hasObjects()
{
GenericObjectPO result = new GenericObjectPO();
result.setModifier(this.getPattern().getModifier());
super.hasLink(GenericGraph.PROPERTY_OBJECTS, result);
return result;
}
public GenericGraphPO hasObjects(GenericObjectPO tgt)
{
LinkConstraint patternLink = (LinkConstraint) new LinkConstraint()
.withTgt(tgt).withTgtRoleName(GenericGraph.PROPERTY_OBJECTS)
.withSrc(this)
.withModifier(this.getPattern().getModifier());
this.getPattern().addToElements(patternLink);
this.getPattern().findMatch();
return this;
}
public GenericObjectSet getObjects()
{
if (this.getPattern().getHasMatch())
{
return ((GenericGraph) this.getCurrentMatch()).getObjects();
}
return null;
}
public GenericLinkPO hasLinks()
{
GenericLinkPO result = new GenericLinkPO();
result.setModifier(this.getPattern().getModifier());
super.hasLink(GenericGraph.PROPERTY_LINKS, result);
return result;
}
public GenericGraphPO hasLinks(GenericLinkPO tgt)
{
LinkConstraint patternLink = (LinkConstraint) new LinkConstraint()
.withTgt(tgt).withTgtRoleName(GenericGraph.PROPERTY_LINKS)
.withSrc(this)
.withModifier(this.getPattern().getModifier());
this.getPattern().addToElements(patternLink);
this.getPattern().findMatch();
return this;
}
public GenericLinkSet getLinks()
{
if (this.getPattern().getHasMatch())
{
return ((GenericGraph) this.getCurrentMatch()).getLinks();
}
return null;
}
public GenericObjectPO createObjects()
{
return this.startCreate().hasObjects().endCreate();
}
public GenericGraphPO createObjects(GenericObjectPO tgt)
{
return this.startCreate().hasObjects(tgt).endCreate();
}
public GenericLinkPO createLinks()
{
return this.startCreate().hasLinks().endCreate();
}
public GenericGraphPO createLinks(GenericLinkPO tgt)
{
return this.startCreate().hasLinks(tgt).endCreate();
}
public GenericObjectPO filterObjects()
{
GenericObjectPO result = new GenericObjectPO(new GenericObject[]{});
result.setModifier(this.getPattern().getModifier());
super.hasLink(GenericGraph.PROPERTY_OBJECTS, result);
return result;
}
public GenericGraphPO filterObjects(GenericObjectPO tgt)
{
return hasLinkConstraint(tgt, GenericGraph.PROPERTY_OBJECTS);
}
public GenericLinkPO filterLinks()
{
GenericLinkPO result = new GenericLinkPO(new GenericLink[]{});
result.setModifier(this.getPattern().getModifier());
super.hasLink(GenericGraph.PROPERTY_LINKS, result);
return result;
}
public GenericGraphPO filterLinks(GenericLinkPO tgt)
{
return hasLinkConstraint(tgt, GenericGraph.PROPERTY_LINKS);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy