This commit is contained in:
nik
2013-09-20 13:51:22 +04:00
parent 0738800653
commit 1114cfeb01
8 changed files with 36 additions and 0 deletions
@@ -18,6 +18,11 @@ package org.jetbrains.jps.model;
import org.jetbrains.annotations.NotNull;
/**
* Base interface for all types of elements in JPS model
*
* <p>
* Use {@link org.jetbrains.jps.model.ex.JpsElementTypeBase} as a base class for all implementations of this interface
* </p>
* @author nik
*/
public interface JpsElementType<P extends JpsElement> {
@@ -19,6 +19,11 @@ import org.jetbrains.jps.model.JpsElement;
import org.jetbrains.jps.model.JpsElementType;
/**
* Represents a type of artifacts in JPS model
*
* <p>
* Use {@link org.jetbrains.jps.model.ex.JpsElementTypeBase} as a base class for implementations of this interface
* </p>
* @author nik
*/
public interface JpsArtifactType<P extends JpsElement> extends JpsElementType<P> {
@@ -21,6 +21,11 @@ import org.jetbrains.jps.model.JpsElementChildRole;
import org.jetbrains.jps.model.JpsElementType;
/**
* A base class for all implementations of {@link org.jetbrains.jps.model.JpsElementType}.
*
* <p>
* If elements of your type don't have any specific properties extend {@link JpsElementTypeWithDummyProperties} instead.
* </p>
* @author nik
*/
public abstract class JpsElementTypeBase<P extends JpsElement>implements JpsElementType<P> {
@@ -21,6 +21,8 @@ import org.jetbrains.jps.model.JpsElementFactory;
import org.jetbrains.jps.model.JpsElementTypeWithDefaultProperties;
/**
* A base class for type elements without any specific properties
*
* @author nik
*/
public abstract class JpsElementTypeWithDummyProperties extends JpsElementTypeBase<JpsDummyElement> implements JpsElementTypeWithDefaultProperties<JpsDummyElement> {
@@ -19,6 +19,10 @@ import org.jetbrains.jps.model.JpsElement;
import org.jetbrains.jps.model.JpsElementType;
/**
* Represents a type of libraries in JPS model.
* <p>
* Use {@link org.jetbrains.jps.model.ex.JpsElementTypeBase} as a base class for implementations of this interface
* </p>
* @author nik
*/
public interface JpsLibraryType<P extends JpsElement> extends JpsElementType<P> {
@@ -20,6 +20,11 @@ import org.jetbrains.jps.model.JpsElementType;
import org.jetbrains.jps.model.JpsElementTypeWithDefaultProperties;
/**
* Represents a type of source roots of modules in JPS model.
*
* <p>
* Use {@link org.jetbrains.jps.model.ex.JpsElementTypeBase} as a base class for implementations of this interface
* </p>
* @author nik
*/
public interface JpsModuleSourceRootType<P extends JpsElement> extends JpsElementType<P>, JpsElementTypeWithDefaultProperties<P> {
@@ -19,6 +19,11 @@ import org.jetbrains.jps.model.JpsElement;
import org.jetbrains.jps.model.JpsElementType;
/**
* Represents a type of modules in JPS model
*
* <p>
* Use {@link org.jetbrains.jps.model.ex.JpsElementTypeBase} as a base class for implementations of this interface
* </p>
* @author nik
*/
public interface JpsModuleType<P extends JpsElement> extends JpsElementType<P> {
@@ -19,6 +19,11 @@ import org.jetbrains.jps.model.JpsElement;
import org.jetbrains.jps.model.JpsElementType;
/**
* Represents a type of run configurations in JPS model
*
* <p>
* Use {@link org.jetbrains.jps.model.ex.JpsElementTypeBase} as a base class for implementations of this interface
* </p>
* @author nik
*/
public interface JpsRunConfigurationType<P extends JpsElement> extends JpsElementType<P> {