/**
* Definition.java
*
* @author Charles Groves
*/
package edu.sc.seis.sod.validator.model;
public class Definition {
public Definition(String name, Grammar containingGrammar) {
this(name, containingGrammar, UNDEFINED);
}
public Definition(String name, Grammar containingGrammar, int combine) {
this.name = name;
this.combine = combine;
this.grammar = containingGrammar;
}
public Definition combineWith(Definition d) {
//TODO
return null;
}
public void set(FormProvider f) {
form = f;
if(form instanceof Form) {
form = ((Form)form).deref(null, this);
}
}
public Form getForm() {
//always return a copy so the original doesn't get screwed up. Some
// self referential structures will stop being self referential if
// they're copied from the original
return form.copyWithNewParent(null).getForm();
}
public String getName() {
return name;
}
public int getCombine() {
return combine;
}
public Grammar getGrammar() {
return grammar;
}
public String toString() {
return getGrammar().getLoc() + ":" + getName();
}
private int combine;
//Combine types
public static final int UNDEFINED = 0, CHOICE = 1, INTERLEAVE = 2;
private FormProvider form;
private String name;
private Grammar grammar;
}