eu.mihosoft.vmf.vmftext.grammar.ReadOnlyGrammarModel 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
/**
* An read-only representation of the model object {@code eu.mihosoft.vmf.vmftext.grammar.GrammarModel}.
*
*
*
*
*/
public interface ReadOnlyGrammarModel extends eu.mihosoft.vmf.runtime.core.VObject, eu.mihosoft.vmf.runtime.core.ReadOnly {
/**
* Returns the value of the 'customRules' containment list.
*
* It is bidirectional and its opposite is '{@link ReadOnlyCustomRule#getModel() model}'.
*
*
*
*
* @return the value of the 'customRules' containment list.
*/
// generic model type
public VList getCustomRules();
/**
* Returns the value of the 'grammarName' property.
*
*
*
*
* @return the value of the 'grammarName' property.
* @see GrammarModel#\setGrammarName(java.lang.String)
*/
public java.lang.String getGrammarName();
/**
* Returns the value of the 'packageName' property.
*
*
*
*
* @return the value of the 'packageName' property.
* @see GrammarModel#\setPackageName(java.lang.String)
*/
public java.lang.String getPackageName();
/**
* Returns the value of the 'ruleClasses' containment list.
*
* It is bidirectional and its opposite is '{@link ReadOnlyRuleClass#getModel() model}'.
*
*
*
*
* @return the value of the 'ruleClasses' containment list.
*/
// generic model type
public VList getRuleClasses();
/**
* Returns the value of the 'typeMappings' containment reference.
*
* It is bidirectional and its opposite is '{@link ReadOnlyTypeMappings#getModel() model}'.
*
*
*
*
* @return the value of the 'typeMappings' containment reference.
* @see GrammarModel#\setTypeMappings(eu.mihosoft.vmf.vmftext.grammar.TypeMappings)
*/
public ReadOnlyTypeMappings getTypeMappings();
/**
* Returns a deep clone of this object.
* @return a deep clone of this object
*/
@Override
public ReadOnlyGrammarModel clone();
@Override
default ReadOnlyGrammarModel asReadOnly() {
return this;
}
/**
* Returns a modifiable deep clone of this object.
* @return a modifiable deep clone of this object
*/
GrammarModel asModifiable();
}