You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by ma...@apache.org on 2017/09/07 13:42:58 UTC
[2/5] airavata git commit: AIRAVATA-2500 Thrift stub code generation
http://git-wip-us.apache.org/repos/asf/airavata/blob/b0f6744e/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/GatewayProfile/Types.php
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/GatewayProfile/Types.php b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/GatewayProfile/Types.php
index f0b329d..da3071a 100644
--- a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/GatewayProfile/Types.php
+++ b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/GatewayProfile/Types.php
@@ -110,6 +110,14 @@ class ComputeResourcePreference {
* @var int
*/
public $reservationEndTime = null;
+ /**
+ * @var string
+ */
+ public $sshAccountProvisioner = null;
+ /**
+ * @var array
+ */
+ public $sshAccountProvisionerConfig = null;
public function __construct($vals=null) {
if (!isset(self::$_TSPEC)) {
@@ -170,6 +178,22 @@ class ComputeResourcePreference {
'var' => 'reservationEndTime',
'type' => TType::I64,
),
+ 15 => array(
+ 'var' => 'sshAccountProvisioner',
+ 'type' => TType::STRING,
+ ),
+ 16 => array(
+ 'var' => 'sshAccountProvisionerConfig',
+ 'type' => TType::MAP,
+ 'ktype' => TType::STRING,
+ 'vtype' => TType::STRING,
+ 'key' => array(
+ 'type' => TType::STRING,
+ ),
+ 'val' => array(
+ 'type' => TType::STRING,
+ ),
+ ),
);
}
if (is_array($vals)) {
@@ -215,6 +239,12 @@ class ComputeResourcePreference {
if (isset($vals['reservationEndTime'])) {
$this->reservationEndTime = $vals['reservationEndTime'];
}
+ if (isset($vals['sshAccountProvisioner'])) {
+ $this->sshAccountProvisioner = $vals['sshAccountProvisioner'];
+ }
+ if (isset($vals['sshAccountProvisionerConfig'])) {
+ $this->sshAccountProvisionerConfig = $vals['sshAccountProvisionerConfig'];
+ }
}
}
@@ -335,6 +365,33 @@ class ComputeResourcePreference {
$xfer += $input->skip($ftype);
}
break;
+ case 15:
+ if ($ftype == TType::STRING) {
+ $xfer += $input->readString($this->sshAccountProvisioner);
+ } else {
+ $xfer += $input->skip($ftype);
+ }
+ break;
+ case 16:
+ if ($ftype == TType::MAP) {
+ $this->sshAccountProvisionerConfig = array();
+ $_size0 = 0;
+ $_ktype1 = 0;
+ $_vtype2 = 0;
+ $xfer += $input->readMapBegin($_ktype1, $_vtype2, $_size0);
+ for ($_i4 = 0; $_i4 < $_size0; ++$_i4)
+ {
+ $key5 = '';
+ $val6 = '';
+ $xfer += $input->readString($key5);
+ $xfer += $input->readString($val6);
+ $this->sshAccountProvisionerConfig[$key5] = $val6;
+ }
+ $xfer += $input->readMapEnd();
+ } else {
+ $xfer += $input->skip($ftype);
+ }
+ break;
default:
$xfer += $input->skip($ftype);
break;
@@ -418,6 +475,29 @@ class ComputeResourcePreference {
$xfer += $output->writeI64($this->reservationEndTime);
$xfer += $output->writeFieldEnd();
}
+ if ($this->sshAccountProvisioner !== null) {
+ $xfer += $output->writeFieldBegin('sshAccountProvisioner', TType::STRING, 15);
+ $xfer += $output->writeString($this->sshAccountProvisioner);
+ $xfer += $output->writeFieldEnd();
+ }
+ if ($this->sshAccountProvisionerConfig !== null) {
+ if (!is_array($this->sshAccountProvisionerConfig)) {
+ throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+ }
+ $xfer += $output->writeFieldBegin('sshAccountProvisionerConfig', TType::MAP, 16);
+ {
+ $output->writeMapBegin(TType::STRING, TType::STRING, count($this->sshAccountProvisionerConfig));
+ {
+ foreach ($this->sshAccountProvisionerConfig as $kiter7 => $viter8)
+ {
+ $xfer += $output->writeString($kiter7);
+ $xfer += $output->writeString($viter8);
+ }
+ }
+ $output->writeMapEnd();
+ }
+ $xfer += $output->writeFieldEnd();
+ }
$xfer += $output->writeFieldStop();
$xfer += $output->writeStructEnd();
return $xfer;
@@ -711,15 +791,15 @@ class GatewayResourceProfile {
case 3:
if ($ftype == TType::LST) {
$this->computeResourcePreferences = array();
- $_size0 = 0;
- $_etype3 = 0;
- $xfer += $input->readListBegin($_etype3, $_size0);
- for ($_i4 = 0; $_i4 < $_size0; ++$_i4)
+ $_size9 = 0;
+ $_etype12 = 0;
+ $xfer += $input->readListBegin($_etype12, $_size9);
+ for ($_i13 = 0; $_i13 < $_size9; ++$_i13)
{
- $elem5 = null;
- $elem5 = new \Airavata\Model\AppCatalog\GatewayProfile\ComputeResourcePreference();
- $xfer += $elem5->read($input);
- $this->computeResourcePreferences []= $elem5;
+ $elem14 = null;
+ $elem14 = new \Airavata\Model\AppCatalog\GatewayProfile\ComputeResourcePreference();
+ $xfer += $elem14->read($input);
+ $this->computeResourcePreferences []= $elem14;
}
$xfer += $input->readListEnd();
} else {
@@ -729,15 +809,15 @@ class GatewayResourceProfile {
case 4:
if ($ftype == TType::LST) {
$this->storagePreferences = array();
- $_size6 = 0;
- $_etype9 = 0;
- $xfer += $input->readListBegin($_etype9, $_size6);
- for ($_i10 = 0; $_i10 < $_size6; ++$_i10)
+ $_size15 = 0;
+ $_etype18 = 0;
+ $xfer += $input->readListBegin($_etype18, $_size15);
+ for ($_i19 = 0; $_i19 < $_size15; ++$_i19)
{
- $elem11 = null;
- $elem11 = new \Airavata\Model\AppCatalog\GatewayProfile\StoragePreference();
- $xfer += $elem11->read($input);
- $this->storagePreferences []= $elem11;
+ $elem20 = null;
+ $elem20 = new \Airavata\Model\AppCatalog\GatewayProfile\StoragePreference();
+ $xfer += $elem20->read($input);
+ $this->storagePreferences []= $elem20;
}
$xfer += $input->readListEnd();
} else {
@@ -789,9 +869,9 @@ class GatewayResourceProfile {
{
$output->writeListBegin(TType::STRUCT, count($this->computeResourcePreferences));
{
- foreach ($this->computeResourcePreferences as $iter12)
+ foreach ($this->computeResourcePreferences as $iter21)
{
- $xfer += $iter12->write($output);
+ $xfer += $iter21->write($output);
}
}
$output->writeListEnd();
@@ -806,9 +886,9 @@ class GatewayResourceProfile {
{
$output->writeListBegin(TType::STRUCT, count($this->storagePreferences));
{
- foreach ($this->storagePreferences as $iter13)
+ foreach ($this->storagePreferences as $iter22)
{
- $xfer += $iter13->write($output);
+ $xfer += $iter22->write($output);
}
}
$output->writeListEnd();
http://git-wip-us.apache.org/repos/asf/airavata/blob/b0f6744e/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/accountprovisioning/SSHAccountProvisioner.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/accountprovisioning/SSHAccountProvisioner.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/accountprovisioning/SSHAccountProvisioner.java
index fb0a965..0dcadc4 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/accountprovisioning/SSHAccountProvisioner.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/accountprovisioning/SSHAccountProvisioner.java
@@ -58,6 +58,7 @@ public class SSHAccountProvisioner implements org.apache.thrift.TBase<SSHAccount
private static final org.apache.thrift.protocol.TField NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("name", org.apache.thrift.protocol.TType.STRING, (short)1);
private static final org.apache.thrift.protocol.TField CAN_CREATE_ACCOUNT_FIELD_DESC = new org.apache.thrift.protocol.TField("canCreateAccount", org.apache.thrift.protocol.TType.BOOL, (short)2);
private static final org.apache.thrift.protocol.TField CAN_INSTALL_SSHKEY_FIELD_DESC = new org.apache.thrift.protocol.TField("canInstallSSHKey", org.apache.thrift.protocol.TType.BOOL, (short)3);
+ private static final org.apache.thrift.protocol.TField CONFIG_PARAMS_FIELD_DESC = new org.apache.thrift.protocol.TField("configParams", org.apache.thrift.protocol.TType.LIST, (short)4);
private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
static {
@@ -68,12 +69,14 @@ public class SSHAccountProvisioner implements org.apache.thrift.TBase<SSHAccount
private String name; // required
private boolean canCreateAccount; // required
private boolean canInstallSSHKey; // required
+ private List<SSHAccountProvisionerConfigParam> configParams; // required
/** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
public enum _Fields implements org.apache.thrift.TFieldIdEnum {
NAME((short)1, "name"),
CAN_CREATE_ACCOUNT((short)2, "canCreateAccount"),
- CAN_INSTALL_SSHKEY((short)3, "canInstallSSHKey");
+ CAN_INSTALL_SSHKEY((short)3, "canInstallSSHKey"),
+ CONFIG_PARAMS((short)4, "configParams");
private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
@@ -94,6 +97,8 @@ public class SSHAccountProvisioner implements org.apache.thrift.TBase<SSHAccount
return CAN_CREATE_ACCOUNT;
case 3: // CAN_INSTALL_SSHKEY
return CAN_INSTALL_SSHKEY;
+ case 4: // CONFIG_PARAMS
+ return CONFIG_PARAMS;
default:
return null;
}
@@ -146,6 +151,9 @@ public class SSHAccountProvisioner implements org.apache.thrift.TBase<SSHAccount
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
tmpMap.put(_Fields.CAN_INSTALL_SSHKEY, new org.apache.thrift.meta_data.FieldMetaData("canInstallSSHKey", org.apache.thrift.TFieldRequirementType.REQUIRED,
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
+ tmpMap.put(_Fields.CONFIG_PARAMS, new org.apache.thrift.meta_data.FieldMetaData("configParams", org.apache.thrift.TFieldRequirementType.REQUIRED,
+ new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST,
+ new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, SSHAccountProvisionerConfigParam.class))));
metaDataMap = Collections.unmodifiableMap(tmpMap);
org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(SSHAccountProvisioner.class, metaDataMap);
}
@@ -156,7 +164,8 @@ public class SSHAccountProvisioner implements org.apache.thrift.TBase<SSHAccount
public SSHAccountProvisioner(
String name,
boolean canCreateAccount,
- boolean canInstallSSHKey)
+ boolean canInstallSSHKey,
+ List<SSHAccountProvisionerConfigParam> configParams)
{
this();
this.name = name;
@@ -164,6 +173,7 @@ public class SSHAccountProvisioner implements org.apache.thrift.TBase<SSHAccount
setCanCreateAccountIsSet(true);
this.canInstallSSHKey = canInstallSSHKey;
setCanInstallSSHKeyIsSet(true);
+ this.configParams = configParams;
}
/**
@@ -176,6 +186,13 @@ public class SSHAccountProvisioner implements org.apache.thrift.TBase<SSHAccount
}
this.canCreateAccount = other.canCreateAccount;
this.canInstallSSHKey = other.canInstallSSHKey;
+ if (other.isSetConfigParams()) {
+ List<SSHAccountProvisionerConfigParam> __this__configParams = new ArrayList<SSHAccountProvisionerConfigParam>(other.configParams.size());
+ for (SSHAccountProvisionerConfigParam other_element : other.configParams) {
+ __this__configParams.add(new SSHAccountProvisionerConfigParam(other_element));
+ }
+ this.configParams = __this__configParams;
+ }
}
public SSHAccountProvisioner deepCopy() {
@@ -189,6 +206,7 @@ public class SSHAccountProvisioner implements org.apache.thrift.TBase<SSHAccount
this.canCreateAccount = false;
setCanInstallSSHKeyIsSet(false);
this.canInstallSSHKey = false;
+ this.configParams = null;
}
public String getName() {
@@ -258,6 +276,44 @@ public class SSHAccountProvisioner implements org.apache.thrift.TBase<SSHAccount
__isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __CANINSTALLSSHKEY_ISSET_ID, value);
}
+ public int getConfigParamsSize() {
+ return (this.configParams == null) ? 0 : this.configParams.size();
+ }
+
+ public java.util.Iterator<SSHAccountProvisionerConfigParam> getConfigParamsIterator() {
+ return (this.configParams == null) ? null : this.configParams.iterator();
+ }
+
+ public void addToConfigParams(SSHAccountProvisionerConfigParam elem) {
+ if (this.configParams == null) {
+ this.configParams = new ArrayList<SSHAccountProvisionerConfigParam>();
+ }
+ this.configParams.add(elem);
+ }
+
+ public List<SSHAccountProvisionerConfigParam> getConfigParams() {
+ return this.configParams;
+ }
+
+ public void setConfigParams(List<SSHAccountProvisionerConfigParam> configParams) {
+ this.configParams = configParams;
+ }
+
+ public void unsetConfigParams() {
+ this.configParams = null;
+ }
+
+ /** Returns true if field configParams is set (has been assigned a value) and false otherwise */
+ public boolean isSetConfigParams() {
+ return this.configParams != null;
+ }
+
+ public void setConfigParamsIsSet(boolean value) {
+ if (!value) {
+ this.configParams = null;
+ }
+ }
+
public void setFieldValue(_Fields field, Object value) {
switch (field) {
case NAME:
@@ -284,6 +340,14 @@ public class SSHAccountProvisioner implements org.apache.thrift.TBase<SSHAccount
}
break;
+ case CONFIG_PARAMS:
+ if (value == null) {
+ unsetConfigParams();
+ } else {
+ setConfigParams((List<SSHAccountProvisionerConfigParam>)value);
+ }
+ break;
+
}
}
@@ -298,6 +362,9 @@ public class SSHAccountProvisioner implements org.apache.thrift.TBase<SSHAccount
case CAN_INSTALL_SSHKEY:
return isCanInstallSSHKey();
+ case CONFIG_PARAMS:
+ return getConfigParams();
+
}
throw new IllegalStateException();
}
@@ -315,6 +382,8 @@ public class SSHAccountProvisioner implements org.apache.thrift.TBase<SSHAccount
return isSetCanCreateAccount();
case CAN_INSTALL_SSHKEY:
return isSetCanInstallSSHKey();
+ case CONFIG_PARAMS:
+ return isSetConfigParams();
}
throw new IllegalStateException();
}
@@ -359,6 +428,15 @@ public class SSHAccountProvisioner implements org.apache.thrift.TBase<SSHAccount
return false;
}
+ boolean this_present_configParams = true && this.isSetConfigParams();
+ boolean that_present_configParams = true && that.isSetConfigParams();
+ if (this_present_configParams || that_present_configParams) {
+ if (!(this_present_configParams && that_present_configParams))
+ return false;
+ if (!this.configParams.equals(that.configParams))
+ return false;
+ }
+
return true;
}
@@ -381,6 +459,11 @@ public class SSHAccountProvisioner implements org.apache.thrift.TBase<SSHAccount
if (present_canInstallSSHKey)
list.add(canInstallSSHKey);
+ boolean present_configParams = true && (isSetConfigParams());
+ list.add(present_configParams);
+ if (present_configParams)
+ list.add(configParams);
+
return list.hashCode();
}
@@ -422,6 +505,16 @@ public class SSHAccountProvisioner implements org.apache.thrift.TBase<SSHAccount
return lastComparison;
}
}
+ lastComparison = Boolean.valueOf(isSetConfigParams()).compareTo(other.isSetConfigParams());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetConfigParams()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.configParams, other.configParams);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
return 0;
}
@@ -457,6 +550,14 @@ public class SSHAccountProvisioner implements org.apache.thrift.TBase<SSHAccount
sb.append("canInstallSSHKey:");
sb.append(this.canInstallSSHKey);
first = false;
+ if (!first) sb.append(", ");
+ sb.append("configParams:");
+ if (this.configParams == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.configParams);
+ }
+ first = false;
sb.append(")");
return sb.toString();
}
@@ -475,6 +576,10 @@ public class SSHAccountProvisioner implements org.apache.thrift.TBase<SSHAccount
throw new org.apache.thrift.protocol.TProtocolException("Required field 'canInstallSSHKey' is unset! Struct:" + toString());
}
+ if (!isSetConfigParams()) {
+ throw new org.apache.thrift.protocol.TProtocolException("Required field 'configParams' is unset! Struct:" + toString());
+ }
+
// check for sub-struct validity
}
@@ -538,6 +643,25 @@ public class SSHAccountProvisioner implements org.apache.thrift.TBase<SSHAccount
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
}
break;
+ case 4: // CONFIG_PARAMS
+ if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+ {
+ org.apache.thrift.protocol.TList _list0 = iprot.readListBegin();
+ struct.configParams = new ArrayList<SSHAccountProvisionerConfigParam>(_list0.size);
+ SSHAccountProvisionerConfigParam _elem1;
+ for (int _i2 = 0; _i2 < _list0.size; ++_i2)
+ {
+ _elem1 = new SSHAccountProvisionerConfigParam();
+ _elem1.read(iprot);
+ struct.configParams.add(_elem1);
+ }
+ iprot.readListEnd();
+ }
+ struct.setConfigParamsIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ break;
default:
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
}
@@ -562,6 +686,18 @@ public class SSHAccountProvisioner implements org.apache.thrift.TBase<SSHAccount
oprot.writeFieldBegin(CAN_INSTALL_SSHKEY_FIELD_DESC);
oprot.writeBool(struct.canInstallSSHKey);
oprot.writeFieldEnd();
+ if (struct.configParams != null) {
+ oprot.writeFieldBegin(CONFIG_PARAMS_FIELD_DESC);
+ {
+ oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.configParams.size()));
+ for (SSHAccountProvisionerConfigParam _iter3 : struct.configParams)
+ {
+ _iter3.write(oprot);
+ }
+ oprot.writeListEnd();
+ }
+ oprot.writeFieldEnd();
+ }
oprot.writeFieldStop();
oprot.writeStructEnd();
}
@@ -582,6 +718,13 @@ public class SSHAccountProvisioner implements org.apache.thrift.TBase<SSHAccount
oprot.writeString(struct.name);
oprot.writeBool(struct.canCreateAccount);
oprot.writeBool(struct.canInstallSSHKey);
+ {
+ oprot.writeI32(struct.configParams.size());
+ for (SSHAccountProvisionerConfigParam _iter4 : struct.configParams)
+ {
+ _iter4.write(oprot);
+ }
+ }
}
@Override
@@ -593,6 +736,18 @@ public class SSHAccountProvisioner implements org.apache.thrift.TBase<SSHAccount
struct.setCanCreateAccountIsSet(true);
struct.canInstallSSHKey = iprot.readBool();
struct.setCanInstallSSHKeyIsSet(true);
+ {
+ org.apache.thrift.protocol.TList _list5 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+ struct.configParams = new ArrayList<SSHAccountProvisionerConfigParam>(_list5.size);
+ SSHAccountProvisionerConfigParam _elem6;
+ for (int _i7 = 0; _i7 < _list5.size; ++_i7)
+ {
+ _elem6 = new SSHAccountProvisionerConfigParam();
+ _elem6.read(iprot);
+ struct.configParams.add(_elem6);
+ }
+ }
+ struct.setConfigParamsIsSet(true);
}
}
http://git-wip-us.apache.org/repos/asf/airavata/blob/b0f6744e/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/ComputeResourcePreference.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/ComputeResourcePreference.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/ComputeResourcePreference.java
index 5601424..3edf60c 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/ComputeResourcePreference.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/ComputeResourcePreference.java
@@ -23,15 +23,32 @@
*/
package org.apache.airavata.model.appcatalog.gatewayprofile;
-import org.apache.thrift.EncodingUtils;
-import org.apache.thrift.protocol.TTupleProtocol;
import org.apache.thrift.scheme.IScheme;
import org.apache.thrift.scheme.SchemeFactory;
import org.apache.thrift.scheme.StandardScheme;
-import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
import javax.annotation.Generated;
-import java.util.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
/**