package org.jboss.windup.graph.model;
import com.tinkerpop.blueprints.Direction;
import com.tinkerpop.frames.Adjacency;
import com.tinkerpop.frames.Property;
import com.tinkerpop.frames.modules.typedgraph.TypeValue;
/**
* This classifies files and provides general background information about a specific {@link ArchiveModel}. (For instance,
* an XML file may be classified as a "XYZ Configuration File".) A {@link OrganizationModel} may also contain links to
* additional information, or auto-translated/generated/updated versions of the source file.
*/
@TypeValue(OrganizationModel.TYPE)
public interface OrganizationModel extends WindupVertexFrame
{
String TYPE = "OrganizationModel";
String TYPE_PREFIX = TYPE + ":";
String NAME = TYPE_PREFIX + "name";
String LINKS = TYPE_PREFIX + "links";
String ARCHIVE_MODEL = TYPE_PREFIX + "organizationModelToArchiveModel";
/**
* Add a {@link ArchiveModel} associated with this {@link OrganizationModel}.
*/
@Adjacency(label = ARCHIVE_MODEL, direction = Direction.OUT)
void addArchiveModel(ArchiveModel archiveModel);
/**
* Get the {@link ArchiveModel} associated with this {@link OrganizationModel}.
*/
@Adjacency(label = ARCHIVE_MODEL, direction = Direction.OUT)
Iterable<ArchiveModel> getArchiveModels();
/**
* Add a related {@link Link} to this {@link OrganizationModel}
*/
@Adjacency(label = LINKS, direction = Direction.OUT)
void addLink(LinkModel linkDecorator);
/**
* Get the related {@link Link} instances associated with this {@link OrganizationModel}
*/
@Adjacency(label = LINKS, direction = Direction.OUT)
Iterable<LinkModel> getLinks();
/**
* Set the description text of this {@link OrganizationModel}.
*/
@Property(NAME)
void setName(String name);
/**
* Get the description text of this {@link OrganizationModel}.
*/
@Property(NAME)
String getName();
}