eu.mihosoft.vmf.vmftext.grammar.Mapping Maven / Gradle / Ivy
The newest version!
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.Mapping}.
*
*
*
*
*/
public interface Mapping extends eu.mihosoft.vmf.runtime.core.VObject, Cloneable, eu.mihosoft.vmf.runtime.core.Mutable {
/**
* Returns the value of the 'defaultValueCode' property.
*
*
*
*
* @return the value of the 'defaultValueCode' property.
* @see Mapping#setDefaultValueCode(java.lang.String)
*/
java.lang.String getDefaultValueCode();
/**
* Sets the value of the 'defaultValueCode' property.
*
*
*
*
* @param defaultValueCode the value to set
* @see Mapping#getDefaultValueCode()
*/
void setDefaultValueCode(java.lang.String defaultValueCode);
/**
* Returns the value of the 'parent' container reference.
*
* It is bidirectional and its opposite is '{@link eu.mihosoft.vmf.vmftext.grammar.TypeMapping#getEntries() entries}'.
*
*
*
*
* @return the value of the 'parent' container reference.
* @see Mapping#setParent(eu.mihosoft.vmf.vmftext.grammar.TypeMapping)
*/
eu.mihosoft.vmf.vmftext.grammar.TypeMapping getParent();
/**
* Sets the value of the 'parent' property.
*
*
*
*
* @param parent the value to set
* @see Mapping#getParent()
*/
void setParent(eu.mihosoft.vmf.vmftext.grammar.TypeMapping parent);
/**
* Returns the value of the 'ruleName' property.
*
*
*
*
* @return the value of the 'ruleName' property.
* @see Mapping#setRuleName(java.lang.String)
*/
java.lang.String getRuleName();
/**
* Sets the value of the 'ruleName' property.
*
*
*
*
* @param ruleName the value to set
* @see Mapping#getRuleName()
*/
void setRuleName(java.lang.String ruleName);
/**
* Returns the value of the 'stringToTypeCode' property.
*
*
*
*
* @return the value of the 'stringToTypeCode' property.
* @see Mapping#setStringToTypeCode(java.lang.String)
*/
java.lang.String getStringToTypeCode();
/**
* Sets the value of the 'stringToTypeCode' property.
*
*
*
*
* @param stringToTypeCode the value to set
* @see Mapping#getStringToTypeCode()
*/
void setStringToTypeCode(java.lang.String stringToTypeCode);
/**
* Returns the value of the 'typeName' property.
*
*
*
*
* @return the value of the 'typeName' property.
* @see Mapping#setTypeName(java.lang.String)
*/
java.lang.String getTypeName();
/**
* Sets the value of the 'typeName' property.
*
*
*
*
* @param typeName the value to set
* @see Mapping#getTypeName()
*/
void setTypeName(java.lang.String typeName);
/**
* Returns the value of the 'typeToStringCode' property.
*
*
*
*
* @return the value of the 'typeToStringCode' property.
* @see Mapping#setTypeToStringCode(java.lang.String)
*/
java.lang.String getTypeToStringCode();
/**
* Sets the value of the 'typeToStringCode' property.
*
*
*
*
* @param typeToStringCode the value to set
* @see Mapping#getTypeToStringCode()
*/
void setTypeToStringCode(java.lang.String typeToStringCode);
// --------------------------------------------------------------------
// --- declaration of delegation methods
// --------------------------------------------------------------------
// --------------------------------------------------------------------
// --- Builder methods
// --------------------------------------------------------------------
public static interface Builder {
/**
* Sets the 'defaultValueCode' property of this builder.
* @param defaultValueCode value to set
* @return this builder
*/
public Builder withDefaultValueCode(java.lang.String defaultValueCode);
/**
* Sets the 'ruleName' property of this builder.
* @param ruleName value to set
* @return this builder
*/
public Builder withRuleName(java.lang.String ruleName);
/**
* Sets the 'stringToTypeCode' property of this builder.
* @param stringToTypeCode value to set
* @return this builder
*/
public Builder withStringToTypeCode(java.lang.String stringToTypeCode);
/**
* Sets the 'typeName' property of this builder.
* @param typeName value to set
* @return this builder
*/
public Builder withTypeName(java.lang.String typeName);
/**
* Sets the 'typeToStringCode' property of this builder.
* @param typeToStringCode value to set
* @return this builder
*/
public Builder withTypeToStringCode(java.lang.String typeToStringCode);
/**
* Builds a new '{@link eu.mihosoft.vmf.vmftext.grammar.Mapping Mapping}' instance.
* @return a new '{@link eu.mihosoft.vmf.vmftext.grammar.Mapping Mapping}' instance
*/
public Mapping build();
/**
* Defines whether to append collections rather than replacing them in the
* {@link #applyFrom(Mapping)} and {@link #applyTo(Mapping)} 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(Mapping)
*/
public Builder applyFrom(Mapping o);
/**
* Applies all properties from this builder to the specified object.
* @param o object to apply properties to
* @return this builder
* @see #applyFrom(Mapping)
*/
public Builder applyTo(Mapping o);
} // end class Builder
/**
* Returns a new builder for creating a '{@link eu.mihosoft.vmf.vmftext.grammar.Mapping Mapping}' instance.
* @return a new builder for creating a '{@link eu.mihosoft.vmf.vmftext.grammar.Mapping Mapping}' instance
*/
static Builder newBuilder() {
return __VMF__Mapping_Creator.newBuilderInstance();
} // end newBuilder()
/**
* Creates a new instance of '{@link Mapping Mapping}'
* @return a new instance of '{@link Mapping Mapping}'
*/
static Mapping newInstance() {
return __VMF__Mapping_Creator.newInstance();
}
/**
* Returns a read-only wrapper of '{@link Mapping Mapping}'
* @return a read-only wrapper of '{@link Mapping Mapping}'
*/
ReadOnlyMapping asReadOnly();
/**
* Returns a deep clone of this object.
* @return a deep clone of this object
*/
@Override
Mapping clone() /*throws CloneNotSupportedException*/;
}
/*
* Creates instances of type {@codeeu.mihosoft.vmf.vmftext.grammar.impl.MappingImpl}. 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__Mapping_Creator {
static Class> cls;
static java.lang.reflect.Constructor constructor;
static java.lang.invoke.MethodHandles.Lookup lookup;
static java.lang.invoke.MethodHandle constructorMH;
static Mapping newInstance() {
try {
if(cls==null) {
cls = Class.forName("eu.mihosoft.vmf.vmftext.grammar.impl.MappingImpl");
if(lookup==null) { lookup = java.lang.invoke.MethodHandles.lookup(); }
constructor = cls.getConstructor();
constructor.setAccessible(true);
constructorMH = lookup.unreflectConstructor(constructor);
}
return (Mapping) constructorMH.invoke();
} catch (Throwable tr) {
throw new RuntimeException("Cannot instantiate \"eu.mihosoft.vmf.vmftext.grammar.impl.MappingImpl\"", tr);
}
}
static Class> builderCls;
static java.lang.reflect.Constructor builderConstructor;
static java.lang.invoke.MethodHandle builderConstructorMH;
static Mapping.Builder newBuilderInstance() {
try {
if(builderCls==null) {
builderCls = Class.forName("eu.mihosoft.vmf.vmftext.grammar.impl.MappingImpl$BuilderImpl");
if(lookup==null) { lookup = java.lang.invoke.MethodHandles.lookup(); }
builderConstructor = builderCls.getConstructor();
builderConstructor.setAccessible(true);
builderConstructorMH = lookup.unreflectConstructor(builderConstructor);
}
return (Mapping.Builder) builderConstructorMH.invoke();
} catch (Throwable tr) {
throw new RuntimeException("Cannot instantiate \"eu.mihosoft.vmf.vmftext.grammar.impl.MappingImpl\"", tr);
}
}
}