/*
* @(#)$Id: HedgeRules.java,v 1.5 2001/05/16 21:33:17 Bear Exp $
*
* Copyright 2001 Sun Microsystems, Inc. All Rights Reserved.
*
* This software is the proprietary information of Sun Microsystems, Inc.
* Use is subject to license terms.
*
*/
package com.sun.msv.grammar.relax;
import com.sun.msv.grammar.*;
/**
* hedgeRule of RELAX module.
*
* ReferenceExp.exp holds a choice of the content models of all hedgeRules that
* share the same label name.
*
* @author <a href="mailto:kohsuke.kawaguchi@eng.sun.com">Kohsuke KAWAGUCHI</a>
*/
public class HedgeRules extends ReferenceExp implements Exportable {
protected HedgeRules( String label, RELAXModule ownerModule ) {
super(label);
this.ownerModule = ownerModule;
}
public void addHedge( Expression exp, ExpressionPool pool ) {
if( this.exp==null ) this.exp=exp; // first time
else this.exp=pool.createChoice(this.exp,exp);
}
public boolean equals( Object o ) { return this==o; }
public Object visit( RELAXExpressionVisitor visitor )
{ return visitor.onHedgeRules(this); }
public Expression visit( RELAXExpressionVisitorExpression visitor )
{ return visitor.onHedgeRules(this); }
public boolean visit( RELAXExpressionVisitorBoolean visitor )
{ return visitor.onHedgeRules(this); }
public void visit( RELAXExpressionVisitorVoid visitor )
{ visitor.onHedgeRules(this); }
/** a flag that indicates this hedgeRule is exported and
* therefore accessible from other modules.
*/
public boolean exported = false;
public boolean isExported() { return exported; }
/** RELAXModule object to which this object belongs */
public final RELAXModule ownerModule;
}