|
OriginFunction.java
|
/* * Copyright (c) 2005, Regents of the University of California * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * * Neither the name of the University of California, Berkeley nor * the names of its contributors may be used to endorse or promote * products derived from this software without specific prior * written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED * OF THE POSSIBILITY OF SUCH DAMAGE. */ package blog; import java.util.*; import java.io.PrintStream;
| Represents a BLOG generating function. |
public class OriginFunction extends Function {
|
public OriginFunction( String fname, List arg_types,
Type ret_type ) {
super( fname, arg_types, ret_type );
if (arg_types.size() != 1) {
throw new IllegalArgumentException
("Origin function must have exactly one argument.");
}
getArgType().addOriginFunction(this);
}
| Returns the type of this OriginFunction's sole element. |
public Type getArgType() {
return getArgTypes()[0];
}
public Object getValueInContext(Object[] args, EvalContext context,
boolean stable) {
Object singleArg = args[0];
if (singleArg instanceof NonGuaranteedObject) {
return ((NonGuaranteedObject) singleArg).getOriginFuncValue(this);
}
if (singleArg instanceof ObjectIdentifier) {
NumberVar nv
= context.getPOPAppSatisfied((ObjectIdentifier) singleArg);
return nv.getOriginFuncValue(this);
}
if (singleArg instanceof GenericObject) {
return ((GenericObject) singleArg).getOriginFuncValue(this);
}
// singleArg must be a guaranteed object or Model.NULL;
// all generating functions are null on it
return Model.NULL;
}
}
This file was generated on Tue Jun 08 17:53:36 PDT 2010 from file OriginFunction.java
by the ilog.language.tools.Hilite Java tool written by Hassan Aït-Kaci