
org.openl.rules.common.ArtefactPath Maven / Gradle / Ivy
package org.openl.rules.common;
import java.util.Collection;
/**
* Defines path of an Artefact. I.e. location of some particular artefact in a
* hierarchy of artefacts or in a tree of artefacts.
*
* @author Aleh Bykhavets
*/
public interface ArtefactPath {
/**
* Gets the path as a collection of segments.
*
* @return collection of segments
*/
Collection getSegments();
/**
* Gets the path as a single string. All segments are concatenated by
* special delimiter '/'.
*
* @return string with the path
*/
String getStringValue();
/**
* Gets the path as a single string, omitting first skip
* elements. All segments are concatenated by special delimiter '/'.
*
* @param skip number of elements to skip
*
* @return string with the path
*/
String getStringValue(int skip);
/**
* Gets a segment in the path.
*
* @param index position of segment in the path
* @return value of segment
*/
String segment(int index);
/**
* Returns number of segments in the path
*
* @return integer number of segments
*/
int segmentCount();
/**
* Create new instance of ArtefactPath from base one, excluding first
* segment of base path. It is used to translate path of artefact in
* the workspace to path in a project.
*
* @return new instance where first segment of base path is excluded.
*/
ArtefactPath withoutFirstSegment();
ArtefactPath withoutSegment(int segmentIndex);
/**
* Creates new instance of ArtefactPath from base one, adding one more
* segment. It should be used to build artefact paths recursively.
*
* @param segment adding segment
* @return new instance where specified segment is appended to path
*/
ArtefactPath withSegment(String segment);
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy