| ## Copyright 2007-2008 Cisco Systems Inc. |
| ## |
| ## Licensed under the Apache License, Version 2.0 (the "License"); you may not |
| ## use this file except in compliance with the License. You may obtain a copy |
| ## of the License at |
| ## |
| ## http://www.apache.org/licenses/LICENSE-2.0 |
| ## |
| ## Unless required by applicable law or agreed to in writing, software |
| ## distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
| ## WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |
| ## License for the specific language governing permissions and limitations |
| ## under the License. |
| // This file automatically generated by: |
| // $version |
| // $now |
| // This file is automatically created and should not be edited! |
| |
| package $intf.parent().name(); |
| |
| import org.apache.etch.bindings.java.msg.AsyncMode; |
| import org.apache.etch.bindings.java.msg.Direction; |
| import org.apache.etch.bindings.java.msg.Field; |
| import org.apache.etch.bindings.java.msg.ImportExportHelper; |
| import org.apache.etch.bindings.java.msg.StructValue; |
| import org.apache.etch.bindings.java.msg.Type; |
| import org.apache.etch.bindings.java.msg.TypeMap; |
| import org.apache.etch.bindings.java.msg.ValueFactory; |
| import org.apache.etch.bindings.java.support.Class2TypeMap; |
| import org.apache.etch.bindings.java.support.DefaultValueFactory; |
| |
| #foreach( $n in $intf.iterator() ) |
| #if ($n.isExtern()) |
| #if ($n.hasImport( $helper )) |
| import $n.getImport( $helper ); |
| #end |
| #if ($n.hasSerializerImport( $helper )) |
| import $n.getSerializerImport( $helper ); |
| #end |
| #end |
| #end |
| |
| #set( $vf = "ValueFactory$intf.name()" ) |
| /** |
| * ValueFactory for $intf.name(). |
| */ |
| @SuppressWarnings("unused") |
| public final class ${vf} extends DefaultValueFactory |
| { |
| /** |
| * Constructs ${vf}. |
| * @param uri the uri used to configure the session. |
| */ |
| public ${vf}( String uri ) |
| { |
| super( uri, types, class2type ); |
| #foreach ( $n in $intf.iterator() ) |
| #if ($n.isMixin()) |
| #set( $m = $n.getModule() ) |
| #set( $s = $m.iterator().next() ) |
| addMixin( new ${m.name()}.ValueFactory${s.name()}( uri ) ); |
| #end |
| #end |
| } |
| |
| private final static TypeMap types = new TypeMap(); |
| |
| private final static Class2TypeMap class2type = new Class2TypeMap(); |
| |
| static |
| { |
| DefaultValueFactory.init( types, class2type ); |
| initTypes(); |
| initResults(); |
| initFields(); |
| initParams(); |
| } |
| #foreach ( $n in $intf.iterator() ) |
| #if ($n.isEnumx() || $n.isStruct() || $n.isExtern() || $n.isExcept() || $n.isMessage()) |
| |
| /** Type for $n.fqname() */ |
| public static Type ${n.vname( $helper )}; |
| #end |
| #end |
| |
| private static void initTypes() |
| { |
| #foreach ( $n in $intf.iterator() ) |
| #if ($n.isEnumx() || $n.isStruct() || $n.isExtern() || $n.isExcept() || $n.isMessage()) |
| ${n.vname( $helper )} = types.get( "$n.fqname()" ); |
| #end |
| #end |
| } |
| |
| private static void initResults() |
| { |
| #foreach ( $n in $intf.iterator() ) |
| #if ($n.isMessage()) |
| ${n.vname( $helper )}.setDirection( Direction.$n.msgDir() ); |
| #if (!$n.isHidden()) |
| #if ($n.isQueuedAsyncReceiver()) |
| ${n.vname( $helper )}.setAsyncMode( AsyncMode.QUEUED ); |
| #elseif ($n.isFreeAsyncReceiver()) |
| ${n.vname( $helper )}.setAsyncMode( AsyncMode.FREE ); |
| #else |
| ${n.vname( $helper )}.setAsyncMode( AsyncMode.NONE ); |
| #end |
| #if (!$n.isOneway()) |
| #set( $r = $n.getResultMessage() ) |
| ${n.vname( $helper )}.setResult( $r.vname( $helper ) ); |
| ${r.vname( $helper )}.setTimeout( $n.getTimeout() ); |
| #end |
| #end |
| #end |
| #end |
| } |
| ## ----------------------------- import / export ----------------------------- |
| #foreach ( $n in $intf.iterator() ) |
| #if ($n.isStruct() || $n.isExcept()) |
| #set( $tname = $n.efqname( $helper ) ) |
| |
| static |
| { |
| class2type.put( ${tname}.class, ${n.vname( $helper )} ); |
| ${n.vname( $helper )}.setComponentType( ${tname}.class ); |
| #if ($n.hasExtends()) |
| ${n.vname( $helper )}.setSuperType( $n.getExtends().vname( $helper ) ); |
| #end |
| ${n.vname( $helper )}.setImportExportHelper( new ImportExportHelper() |
| { |
| public final StructValue exportValue( ValueFactory vf, Object value ) |
| { |
| StructValue struct = new StructValue( ${n.vname( $helper )}, vf ); |
| $tname v = ($tname) value; |
| #foreach( $p in $n.getAllParameters() ) |
| struct.put( $p.vname( $helper ), v.$p.name() ); |
| #end |
| return struct; |
| } |
| |
| public final Object importValue( StructValue struct ) |
| { |
| $tname v = new ${tname}(); |
| #foreach ($p in $n.getAllParameters()) |
| v.$p.name() = ($helper.getTypeName( $p.type() )) struct.get( $p.vname( $helper ) ); |
| #end |
| return v; |
| } |
| } ); |
| } |
| #elseif ($n.isExtern()) |
| #set( $tname = $n.efqname( $helper ) ) |
| #elseif ($n.isEnumx()) |
| #set( $tname = $n.efqname( $helper ) ) |
| |
| static |
| { |
| class2type.put( ${tname}.class, ${n.vname( $helper )} ); |
| ${n.vname( $helper )}.setComponentType( ${tname}.class ); |
| ${n.vname( $helper )}.setImportExportHelper( new ImportExportHelper() |
| { |
| public final StructValue exportValue( ValueFactory vf, Object value ) |
| { |
| StructValue struct = new StructValue( ${n.vname( $helper )}, vf ); |
| ${tname} v = (${tname}) value; |
| switch (v) |
| { |
| #foreach ($p in $n.iterator()) |
| case $p.name(): struct.put( $p.vname( $helper ), true ); break; |
| #end |
| } |
| return struct; |
| } |
| |
| public final Object importValue( StructValue struct ) |
| { |
| // if empty, it likely means that a null value was sent |
| // or an unknown key (from a different rev of the service). |
| if (struct.isEmpty()) |
| return null; |
| |
| // there should only be a single key, so take the first one |
| Field key = struct.keySet().iterator().next(); |
| #foreach ($p in $n.iterator()) |
| if (key == $p.vname( $helper )) return ${tname}.$p.name(); |
| #end |
| |
| // a known key was sent, but it did not match any defined |
| // key for this type. |
| return null; |
| } |
| } ); |
| } |
| #end |
| #end |
| ## ----------------------------- fields ----------------------------- |
| #set( $x = $params.clear() ) |
| ## standard params from DefaultValueFactory |
| #set( $x = $params.add( "msg" ) ) |
| #set( $x = $params.add( "result" ) ) |
| #foreach( $n in $intf.iterator() ) |
| #if ($n.isEnumx() || $n.isStruct() || $n.isExcept() || $n.isMessage()) |
| #foreach( $param in $n.iterator() ) |
| #if (!$params.contains($param.name().name())) |
| #set( $x = $params.add($param.name().name()) ) |
| |
| /** Field for $param.name().name() */ |
| public static Field $param.vname( $helper ); |
| #end |
| #end |
| #end |
| #end |
| |
| private static void initFields() |
| { |
| #set( $x = $params.clear() ) |
| ## standard params from DefaultValueFactory |
| #set( $x = $params.add( "msg" ) ) |
| #set( $x = $params.add( "result" ) ) |
| #foreach( $n in $intf.iterator() ) |
| #if ($n.isEnumx() || $n.isStruct() || $n.isExcept() || $n.isMessage()) |
| #foreach( $param in $n.iterator() ) |
| #if (!$params.contains($param.name().name())) |
| #set( $x = $params.add($param.name().name()) ) |
| $param.vname( $helper ) = new Field( "$param.name().name()" ); |
| #end |
| #end |
| #end |
| #end |
| |
| #foreach ( $n in $intf.iterator() ) |
| #if ($n.isMessage()) |
| #if (!$n.isHidden()) |
| #if (!$n.isOneway()) |
| #set( $r = $n.getResultMessage() ) |
| ${r.vname( $helper )}.setResponseField( _mf_result ); |
| #end |
| #end |
| #end |
| #end |
| } |
| |
| static |
| { |
| // initialize the extern serializers: |
| #foreach( $n in $intf.iterator() ) |
| #if ($n.isExtern()) |
| ${n.sname( $helper )}.init( ${n.vname( $helper )}, class2type ); |
| #end |
| #end |
| } |
| |
| #set( $ctr = 0 ) |
| private static void initParams() |
| { |
| #foreach( $n in $intf.iterator() ) |
| #if ($n.isEnumx() || $n.isStruct() || $n.isExcept() || $n.isMessage()) |
| #if ($ctr > 0 && $ctr % 100 == 0) |
| |
| initParams${ctr}(); |
| } |
| |
| private static void initParams${ctr}() |
| { |
| #end |
| #set( $ctr = $ctr + 1 ) |
| |
| // params for $n.name() |
| #if ($n.isStruct() || $n.isExcept()) |
| #foreach( $param in $n.getAllParameters() ) |
| ${n.vname( $helper )}.putValidator( $param.vname( $helper ), org.apache.etch.bindings.java.support.$helper.getValidator( $param ) ); |
| #end |
| #else |
| #foreach( $param in $n.iterator() ) |
| ${n.vname( $helper )}.putValidator( $param.vname( $helper ), org.apache.etch.bindings.java.support.$helper.getValidator( $param ) ); |
| #end |
| #end |
| #if ($n.isMessage()) |
| ${n.vname( $helper )}.putValidator( _mf__messageId, org.apache.etch.bindings.java.support.Validator_long.get( 0 ) ); |
| #if ($n.isHidden()) |
| #set( $param = $n.getResultParam() ) |
| #set( $reqMsg = $n.getRequestMessage() ) |
| #foreach( $t in $reqMsg.thrown().iterator() ) |
| ${n.vname( $helper )}.putValidator( $param.vname( $helper ), org.apache.etch.bindings.java.support.$helper.getValidator( $t ) ); // thrown $t.name() |
| #end |
| ${n.vname( $helper )}.putValidator( $param.vname( $helper ), org.apache.etch.bindings.java.support.Validator_RuntimeException.get() ); // thrown RuntimeException |
| ${n.vname( $helper )}.putValidator( _mf__inReplyTo, org.apache.etch.bindings.java.support.Validator_long.get( 0 ) ); |
| #end |
| #end |
| #end |
| #end |
| } |
| |
| static |
| { |
| // done updating types, and class2type: lock them. |
| types.lock(); |
| for (Type t: types.values()) |
| t.lock(); |
| class2type.lock(); |
| } |
| } |