public interface ServerMethods
The file I/O operations of which each variable must be capable.
The projection information. A projection defines the variables specified by a constraint to be returned by the server. These methods store projection information for a non-vector variable. Each variable type used on the server-side of OPeNDAP must implement this interface or one of its descendents.
The methods that define how each type responds to relational operators. Most (all?) types will not have sensible responses to all of the relational operators (e.g. SDByte won't know how to match a regular expression but SDString will). For those operators that are nonsensical a class should throw InvalidOperator.
ServerArrayMethods
,
Operator
Modifier and Type | Method and Description |
---|---|
boolean |
equal(BaseType bt)
The
Operator class contains a generalized implementation
of this method. |
boolean |
greater_eql(BaseType bt)
The
Operator class contains a generalized implementation
of this method. |
boolean |
greater(BaseType bt)
The
Operator class contains a generalized implementation
of this method. |
boolean |
isProject()
Check the projection state of this variable.
|
boolean |
isRead()
Get the value of the Read property.
|
boolean |
isSynthesized()
Get the value of the Synthesized property.
|
boolean |
less_eql(BaseType bt)
The
Operator class contains a generalized implementation
of this method. |
boolean |
less(BaseType bt)
The
Operator class contains a generalized implementation
of this method. |
boolean |
not_equal(BaseType bt)
The
Operator class contains a generalized implementation
of this method. |
boolean |
read(java.lang.String datasetName,
java.lang.Object specialO)
Read a value from the named dataset for this variable.
|
boolean |
regexp(BaseType bt)
The
Operator class contains a generalized implementation
of this method. |
void |
serialize(java.lang.String dataset,
java.io.DataOutputStream sink,
CEEvaluator ce,
java.lang.Object specialO)
Server-side serialization for OPeNDAP variables (sub-classes of
BaseType ). |
void |
setProject(boolean state)
Set the Project property of this variable.
|
void |
setProject(boolean state,
boolean all)
Set the state of this variable's projection.
|
void |
setRead(boolean state)
Set the Read property.
|
void |
setSynthesized(boolean state)
Set the Synthesized property.
|
void setSynthesized(boolean state)
state
- If true
then the variable is considered a
synthetic variable and no part of OPeNDAP will ever try to read it from a
file, otherwise if false
the variable is considered a
normal variable whose value should be read using the
read()
method. By default this property is false.isSynthesized()
,
read(String, Object)
boolean isSynthesized()
true
if this is a synthetic variable,
false
otherwise.void setRead(boolean state)
read()
method. Once read the Read property is
true
. Use this function to manually set the property
value. By default this property is false.state
- true
if the variable has been read,
false
otherwise.isRead()
,
read(String, Object)
boolean isRead()
true
if the variable has been read,
false
otherwise.read(String, Object)
,
setRead(boolean)
boolean read(java.lang.String datasetName, java.lang.Object specialO) throws NoSuchVariableException, java.io.IOException
datasetName
- String identifying the file or other data store
from which to read a vaue for this variable.specialO
- This Object
is a goody that is used by a
Server implementations to deliver important, and as
yet unknown, stuff to the read method. If you don't
need it, make it a null
.true
if more data remains to be read, otehrwise
false
.NoSuchVariableException
- When a variable can't be found.java.io.IOException
- When there is a problem reading data.void setProject(boolean state, boolean all)
true
means
that this variable is part of the current projection as defined by
the current constraint expression, otherwise the current projection
for this variable should be false
.For simple variables and for children of DVector, the variable either is or is not projected. For children of DConstructor, it may be that the request is for only part of the constructor type (e.g., only oe field of a structure). However, the structure variable itself must be marked as projected given the implementation of serialize. The serialize() method does not search the entire tree of variables; it relies on the fact that for a particular variable to be sent, the path from the top of the DDS to that variable must be marked as `projected', not just the variable itself. This keeps the CEEvaluator.send() method from having to search the entire tree for the variables to be sent.
state
- true
if the variable is part of the current
projection, false
otherwise.all
- set (or clear) the Project property of any children.CEEvaluator
void setProject(boolean state)
state
- true
if the variable is part of the current
projection, false
otherwise.setProject(boolean)
,
CEEvaluator
boolean isProject()
true
, otherwise it
should return false
.true
if the variable is part of the current
projections, false
otherwise.setProject(boolean,boolean)
,
setProject(boolean)
,
CEEvaluator
boolean equal(BaseType bt) throws InvalidOperatorException, RegExpException, SBHException
Operator
class contains a generalized implementation
of this method. It should be used unless a localized
architecture/implementation requires otherwise.bt
- The variable to which to compare 'this' value.InvalidOperatorException
- When the operator cannot be applied to
the two data types.RegExpException
- When the regular expression is badly formed.SBHException
- When Something Bad Happens.Operator
boolean not_equal(BaseType bt) throws InvalidOperatorException, RegExpException, SBHException
Operator
class contains a generalized implementation
of this method. It should be used unless a localized
architecture/implementation requires otherwise.bt
- The variable to which to compare 'this' value.InvalidOperatorException
- When the operator cannot be applied to
the two data types.RegExpException
- When the regular expression is badly formed.SBHException
- When Something Bad Happens.Operator
boolean greater(BaseType bt) throws InvalidOperatorException, RegExpException, SBHException
Operator
class contains a generalized implementation
of this method. It should be used unless a localized
architecture/implementation requires otherwise.bt
- The variable to which to compare 'this' value.InvalidOperatorException
- When the operator cannot be applied to
the two data types.RegExpException
- When the regular expression is badly formed.SBHException
- When Something Bad Happens.Operator
boolean greater_eql(BaseType bt) throws InvalidOperatorException, RegExpException, SBHException
Operator
class contains a generalized implementation
of this method. It should be used unless a localized
architecture/implementation requires otherwise.bt
- The variable to which to compare 'this' value.InvalidOperatorException
- When the operator cannot be applied to
the two data types.RegExpException
- When the regular expression is badly formed.SBHException
- When Something Bad Happens.Operator
boolean less(BaseType bt) throws InvalidOperatorException, RegExpException, SBHException
Operator
class contains a generalized implementation
of this method. It should be used unless a localized
architecture/implementation requires otherwise.bt
- The variable to which to compare 'this' value.InvalidOperatorException
- When the operator cannot be applied to
the two data types.RegExpException
- When the regular expression is badly formed.SBHException
- When Something Bad Happens.Operator
boolean less_eql(BaseType bt) throws InvalidOperatorException, RegExpException, SBHException
Operator
class contains a generalized implementation
of this method. It should be used unless a localized
architecture/implementation requires otherwise.bt
- The variable to which to compare 'this' value.InvalidOperatorException
- When the operator cannot be applied to
the two data types.RegExpException
- When the regular expression is badly formed.SBHException
- When Something Bad Happens.Operator
boolean regexp(BaseType bt) throws InvalidOperatorException, RegExpException, SBHException
Operator
class contains a generalized implementation
of this method. It should be used unless a localized
architecture/implementation requires otherwise.bt
- The variable to which to compare 'this' value.InvalidOperatorException
- When the operator cannot be applied to
the two data types.RegExpException
- When the regular expression is badly formed.SBHException
- When Something Bad Happens.Operator
void serialize(java.lang.String dataset, java.io.DataOutputStream sink, CEEvaluator ce, java.lang.Object specialO) throws NoSuchVariableException, DAP2ServerSideException, java.io.IOException
BaseType
). This does not send the entire class as the
Java Serializable
interface does, rather it sends only
the binary data values. Other software is responsible for sending
variable type information (see DDS
).Writes data to a
DataOutputStream
. This method is used
on the server side of the OPeNDAP client/server connection, and possibly
by GUI clients which need to download OPeNDAP data, manipulate it, and
then re-save it as a binary file.For children of DConstructor, this method should call itself on each of the components. For other types this method should call externalize().
dataset
- a String
indicated which dataset to read
from (Or something else if you so desire).sink
- a DataOutputStream
to write to.ce
- the CEEvaluator
to use in the parse process.specialO
- This Object
is a goody that is used by a
Server implementations to deliver important, and as
yet unknown, stuff to the read method. If you don't
need it, make it a null
.java.io.IOException
- thrown on any OutputStream
exception.NoSuchVariableException
- When a variable cannot be found.DAP2ServerSideException
- When there is a server error.BaseType
,
DDS
,
ServerDDS