org.jacorb.idl
Class SequenceType

java.lang.Object
  extended by org.jacorb.idl.runtime.symbol
      extended by org.jacorb.idl.IdlSymbol
          extended by org.jacorb.idl.TypeSpec
              extended by org.jacorb.idl.VectorType
                  extended by org.jacorb.idl.SequenceType

public class SequenceType
extends VectorType

IDL sequences.

Version:
$Id: SequenceType.java,v 1.36 2004/05/06 12:39:58 nicolas Exp $
Author:
Gerald Brose

Field Summary
 org.jacorb.idl.ConstExpr max
           
protected  boolean typedefd
           
 
Fields inherited from class org.jacorb.idl.TypeSpec
alias
 
Fields inherited from class org.jacorb.idl.IdlSymbol
_id, enclosing_symbol, fileSeparator, included, inhibitionFlag, is_pseudo, omg_package_prefix, pack_name
 
Fields inherited from class org.jacorb.idl.runtime.symbol
parse_state, sym
 
Constructor Summary
SequenceType(int num)
           
 
Method Summary
 boolean basic()
           
 java.lang.String className()
           
 java.lang.Object clone()
           
 java.lang.String full_name()
           
static int getNumber()
           
 java.lang.String getTypeCodeExpression()
           
 java.lang.String helperName()
           
 java.lang.String holderName()
           
 int length()
           
 void markTypeDefd()
          we have to be able to distinguish between explicitly typedef'd type names and anonymously defined type names
 void parse()
          The parsing phase.
 void print(java.io.PrintWriter _ps)
           
 java.lang.String printReadStatement(java.lang.String var_name, java.lang.String streamname)
          We have to distinguish between sequence types that have been explicitly declared as types with a typedef and those that are declared as anonymous types in structs or unions.
 java.lang.String printWriteStatement(java.lang.String var_name, java.lang.String streamname)
           
 void setEnclosingSymbol(IdlSymbol s)
           
 void setPackage(java.lang.String s)
           
 TypeSpec typeSpec()
          since the sequence type's name depends on a declarator given in the typedef, the name varilabe has to be set explicitly by the TypeDef object before this sequence type can be used.
 
Methods inherited from class org.jacorb.idl.VectorType
elementTypeExpression, elementTypeName, elementTypeSpec, printReadExpression, setTypeSpec, toString, typeName
 
Methods inherited from class org.jacorb.idl.TypeSpec
getIDLTypeName, getJavaTypeName, getTypeCodeExpression, printExtractExpression, printInsertExpression, set_constr
 
Methods inherited from class org.jacorb.idl.IdlSymbol
accept, addImportedAlias, addImportedName, addImportedName, addImportedNameHolder, deEscapeName, escapeName, generateIncluded, get_token, getEnclosingSymbol, id, is_included, is_pseudo, isEscaped, name, new_num, omgPrefix, printIdMethod, printImport, set_name, set_pseudo, set_token, setPrintPhaseNames
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

max

public org.jacorb.idl.ConstExpr max

typedefd

protected boolean typedefd
Constructor Detail

SequenceType

public SequenceType(int num)
Method Detail

clone

public java.lang.Object clone()
Overrides:
clone in class TypeSpec

setEnclosingSymbol

public void setEnclosingSymbol(IdlSymbol s)
Overrides:
setEnclosingSymbol in class TypeSpec

typeSpec

public TypeSpec typeSpec()
since the sequence type's name depends on a declarator given in the typedef, the name varilabe has to be set explicitly by the TypeDef object before this sequence type can be used.

Overrides:
typeSpec in class TypeSpec

setPackage

public void setPackage(java.lang.String s)
Overrides:
setPackage in class TypeSpec

length

public int length()
Specified by:
length in class VectorType
Returns:
the length of this array or sequence. For multi-dimensional vectors, this is the outermost dimension. For open sequences, this length is 0.

getTypeCodeExpression

public java.lang.String getTypeCodeExpression()
Overrides:
getTypeCodeExpression in class TypeSpec
Returns:
a string for an expression of type TypeCode that describes this type

getNumber

public static int getNumber()

printReadStatement

public java.lang.String printReadStatement(java.lang.String var_name,
                                           java.lang.String streamname)
We have to distinguish between sequence types that have been explicitly declared as types with a typedef and those that are declared as anonymous types in structs or unions. In the latter case, we have to generate marshalling code in-line because there are no helpers for anonymous types

Overrides:
printReadStatement in class TypeSpec

printWriteStatement

public java.lang.String printWriteStatement(java.lang.String var_name,
                                            java.lang.String streamname)
Overrides:
printWriteStatement in class TypeSpec

holderName

public java.lang.String holderName()
Specified by:
holderName in class VectorType

helperName

public java.lang.String helperName()
Specified by:
helperName in class VectorType

className

public java.lang.String className()

parse

public void parse()
The parsing phase.


full_name

public java.lang.String full_name()
Returns:
fully scoped IDL identifier

print

public void print(java.io.PrintWriter _ps)
Overrides:
print in class TypeSpec

markTypeDefd

public void markTypeDefd()
we have to be able to distinguish between explicitly typedef'd type names and anonymously defined type names


basic

public boolean basic()
Overrides:
basic in class TypeSpec
Returns:
true if this is a basic type