
eu.mihosoft.vmf.vmftext.grammar.RuleClass Maven / Gradle / Ivy
package eu.mihosoft.vmf.vmftext.grammar;
// vmf imports
//import eu.mihosoft.vmf.runtime.core.*;
import eu.mihosoft.vcollections.*;
// property types imports
// interface
/**
* A representation of the model object {@code eu.mihosoft.vmf.vmftext.grammar.RuleClass}.
*
*
*
*
*/
public interface RuleClass extends eu.mihosoft.vmf.runtime.core.VObject, WithName,CodeElement, Cloneable, eu.mihosoft.vmf.runtime.core.Mutable {
/**
* Returns the value of the 'childClasses' containment list.
*
* It is bidirectional and its opposite is '{@link RuleClass#getSuperClass() superClass}'.
*
*
*
*
* @return the value of the 'childClasses' containment list.
*/
eu.mihosoft.vcollections.VList getChildClasses();
/**
* Returns the value of the 'customProperties' containment list.
*
* It is bidirectional and its opposite is '{@link Property#getParent() parent}'.
*
*
*
*
* @return the value of the 'customProperties' containment list.
*/
eu.mihosoft.vcollections.VList getCustomProperties();
/**
* Returns the value of the 'customRuleAnnotations' containment list.
*
* It is bidirectional and its opposite is '{@link RuleAnnotation#getParent() parent}'.
*
*
*
*
* @return the value of the 'customRuleAnnotations' containment list.
*/
eu.mihosoft.vcollections.VList getCustomRuleAnnotations();
/**
* Returns the value of the 'delegationMethods' containment list.
*
* It is bidirectional and its opposite is '{@link DelegationMethod#getParent() parent}'.
*
*
*
*
* @return the value of the 'delegationMethods' containment list.
*/
eu.mihosoft.vcollections.VList getDelegationMethods();
/**
* Returns the value of the 'model' containment reference.
*
* It is bidirectional and its opposite is '{@link eu.mihosoft.vmf.vmftext.grammar.GrammarModel#getParent() parent}'.
*
*
*
*
* @return the value of the 'model' containment reference.
* @see RuleClass#setModel(eu.mihosoft.vmf.vmftext.grammar.GrammarModel)
*/
eu.mihosoft.vmf.vmftext.grammar.GrammarModel getModel();
/**
* Sets the value of the 'model' property.
*
*
*
*
* @param model the value to set
* @see RuleClass#getModel()
*/
void setModel(eu.mihosoft.vmf.vmftext.grammar.GrammarModel model);
/**
* Returns the value of the 'properties' containment list.
*
* It is bidirectional and its opposite is '{@link Property#getParent() parent}'.
*
*
*
*
* @return the value of the 'properties' containment list.
*/
eu.mihosoft.vcollections.VList getProperties();
/**
* Returns the value of the 'root' property.
*
*
*
*
* @return the value of the 'root' property.
* @see RuleClass#setRoot(boolean)
*/
boolean isRoot();
/**
* Sets the value of the 'root' property.
*
*
*
*
* @param root the value to set
* @see RuleClass#isRoot()
*/
void setRoot(boolean root);
/**
* Returns the value of the 'superClass' container reference.
*
* It is bidirectional and its opposite is '{@link eu.mihosoft.vmf.vmftext.grammar.RuleClass#getChildClasses() childClasses}'.
*
*
*
*
* @return the value of the 'superClass' container reference.
* @see RuleClass#setSuperClass(eu.mihosoft.vmf.vmftext.grammar.RuleClass)
*/
eu.mihosoft.vmf.vmftext.grammar.RuleClass getSuperClass();
/**
* Sets the value of the 'superClass' property.
*
*
*
*
* @param superClass the value to set
* @see RuleClass#getSuperClass()
*/
void setSuperClass(eu.mihosoft.vmf.vmftext.grammar.RuleClass superClass);
/**
* Returns the value of the 'superInterfaces' property.
*
*
*
*
* @return the value of the 'superInterfaces' property.
*/
eu.mihosoft.vcollections.VList getSuperInterfaces();
// --------------------------------------------------------------------
// --- declaration of delegation methods
// --------------------------------------------------------------------
public java.lang.String nameWithLower();
public java.lang.String nameWithUpper();
public java.lang.String superInterfacesString();
// --------------------------------------------------------------------
// --- Builder methods
// --------------------------------------------------------------------
public static interface Builder {
/**
* Sets the 'childClasses' property of this builder.
* @param childClasses value to set
* @return this builder
*/
public Builder withChildClasses(eu.mihosoft.vcollections.VList childClasses);
/**
* Sets the 'codeRange' property of this builder.
* @param codeRange value to set
* @return this builder
*/
public Builder withCodeRange(eu.mihosoft.vmf.vmftext.grammar.CodeRange codeRange);
/**
* Sets the 'customProperties' property of this builder.
* @param customProperties value to set
* @return this builder
*/
public Builder withCustomProperties(eu.mihosoft.vcollections.VList customProperties);
/**
* Sets the 'customRuleAnnotations' property of this builder.
* @param customRuleAnnotations value to set
* @return this builder
*/
public Builder withCustomRuleAnnotations(eu.mihosoft.vcollections.VList customRuleAnnotations);
/**
* Sets the 'delegationMethods' property of this builder.
* @param delegationMethods value to set
* @return this builder
*/
public Builder withDelegationMethods(eu.mihosoft.vcollections.VList delegationMethods);
/**
* Sets the 'model' property of this builder.
* @param model value to set
* @return this builder
*/
public Builder withModel(eu.mihosoft.vmf.vmftext.grammar.GrammarModel model);
/**
* Sets the 'name' property of this builder.
* @param name value to set
* @return this builder
*/
public Builder withName(java.lang.String name);
/**
* Sets the 'properties' property of this builder.
* @param properties value to set
* @return this builder
*/
public Builder withProperties(eu.mihosoft.vcollections.VList properties);
/**
* Sets the 'root' property of this builder.
* @param root value to set
* @return this builder
*/
public Builder withRoot(boolean root);
/**
* Sets the 'superInterfaces' property of this builder.
* @param superInterfaces value to set
* @return this builder
*/
public Builder withSuperInterfaces(eu.mihosoft.vcollections.VList superInterfaces);
/**
* Builds a new '{@link eu.mihosoft.vmf.vmftext.grammar.RuleClass RuleClass}' instance.
* @return a new '{@link eu.mihosoft.vmf.vmftext.grammar.RuleClass RuleClass}' instance
*/
public RuleClass build();
/**
* Defines whether to append collections rather than replacing them in the
* {@link #applyFrom(RuleClass)} and {@link #applyTo(RuleClass)} methods.
* @param value that indicates whether to append collections
* @return this builder
*/
public Builder appendCollections(boolean value);
/**
* Applies all properties from the specified object to this builder.
* @param o object to apply properties from
* @return this builder
* @see #applyTo(RuleClass)
*/
public Builder applyFrom(RuleClass o);
/**
* Applies all properties from this builder to the specified object.
* @param o object to apply properties to
* @return this builder
* @see #applyFrom(RuleClass)
*/
public Builder applyTo(RuleClass o);
} // end class Builder
/**
* Returns a new builder for creating a '{@link eu.mihosoft.vmf.vmftext.grammar.RuleClass RuleClass}' instance.
* @return a new builder for creating a '{@link eu.mihosoft.vmf.vmftext.grammar.RuleClass RuleClass}' instance
*/
static Builder newBuilder() {
return __VMF__RuleClass_Creator.newBuilderInstance();
} // end newBuilder()
/**
* Creates a new instance of '{@link RuleClass RuleClass}'
* @return a new instance of '{@link RuleClass RuleClass}'
*/
static RuleClass newInstance() {
return __VMF__RuleClass_Creator.newInstance();
}
/**
* Returns a read-only wrapper of '{@link RuleClass RuleClass}'
* @return a read-only wrapper of '{@link RuleClass RuleClass}'
*/
ReadOnlyRuleClass asReadOnly();
/**
* Returns a deep clone of this object.
* @return a deep clone of this object
*/
@Override
RuleClass clone() /*throws CloneNotSupportedException*/;
}
/*
* Creates instances of type {@codeeu.mihosoft.vmf.vmftext.grammar.impl.RuleClassImpl}. Method handles
* and class objects are lazily initialized and cached since repetitive and high frequent usage is likely.
*
* This class is used to gain efficient avvess to private classes from the impl package.
*/
class __VMF__RuleClass_Creator {
static Class> cls;
static java.lang.reflect.Constructor constructor;
static java.lang.invoke.MethodHandles.Lookup lookup;
static java.lang.invoke.MethodHandle constructorMH;
static RuleClass newInstance() {
try {
if(cls==null) {
cls = Class.forName("eu.mihosoft.vmf.vmftext.grammar.impl.RuleClassImpl");
if(lookup==null) { lookup = java.lang.invoke.MethodHandles.lookup(); }
constructor = cls.getConstructor();
constructor.setAccessible(true);
constructorMH = lookup.unreflectConstructor(constructor);
}
return (RuleClass) constructorMH.invoke();
} catch (Throwable tr) {
throw new RuntimeException("Cannot instantiate \"eu.mihosoft.vmf.vmftext.grammar.impl.RuleClassImpl\"", tr);
}
}
static Class> builderCls;
static java.lang.reflect.Constructor builderConstructor;
static java.lang.invoke.MethodHandle builderConstructorMH;
static RuleClass.Builder newBuilderInstance() {
try {
if(builderCls==null) {
builderCls = Class.forName("eu.mihosoft.vmf.vmftext.grammar.impl.RuleClassImpl$BuilderImpl");
if(lookup==null) { lookup = java.lang.invoke.MethodHandles.lookup(); }
builderConstructor = builderCls.getConstructor();
builderConstructor.setAccessible(true);
builderConstructorMH = lookup.unreflectConstructor(builderConstructor);
}
return (RuleClass.Builder) builderConstructorMH.invoke();
} catch (Throwable tr) {
throw new RuntimeException("Cannot instantiate \"eu.mihosoft.vmf.vmftext.grammar.impl.RuleClassImpl\"", tr);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy