All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.openl.rules.common.ArtefactPath Maven / Gradle / Ivy

There is a newer version: 5.27.9-jakarta
Show newest version
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