SType sType = null;
// List<SType> sTypeList = new ArrayList<SType>();
if (sTypeType.equals("Tuple")) {
// BEGIN_TUPLE_ELEMENT,a,PrimitiveSType,primitiveSTypeDummyTestA,END_TUPLE_ELEMENT,
i++;
sType = new TupleSType();
((TupleSType) sType).setSTypeName(sTypeName);
while (!data[i].equals("END_TUPLE")) {
if (data[i].equals("BEGIN_TUPLE_ELEMENT")) {
// data[i]="BEGIN_TUPLE_ELEMENT"
i++;
String tupleSTypeName = data[i];
i++;
// String tupleSTypeTypeName = data[i];
i++;
String tupleSTypeType = data[i];
i++;
((TupleSType) sType).addElement(tupleSTypeName,
new PrimitiveSType(tupleSTypeName,
tupleSTypeType));
while (!data[i].equals("END_TUPLE_ELEMENT")) {
i++;
}
}
// BEGIN_TUPLE,rest,END_TUPLE
if (data[i].equals("true")) {
// is rest
((TupleSType) sType).setRest(true);
}
i++;
if (data[i + 1].equals("END_TUPLE")) {
if (data[i].equals("true")) {
// is rest
((TupleSType) sType).setRest(true);
}
i++;
}
}
i++;
}
if (sTypeType.equals("any")) {
sType = new AnySType();
((AnySType) sType).setSTypeName(sTypeName);
i++;
}
if (sTypeType.equals("Array")) {
String arraySize = data[i];
i++;
String arrayType = data[i];
i++;
if (arrayType.equals("BEGIN_TUPLE")) {
SType tupleSType = new TupleSType();
while (!data[i].equals("END_TUPLE")) {
if (data[i].equals("BEGIN_TUPLE_ELEMENT")) {
// data[i]="BEGIN_TUPLE_ELEMENT"
i++;
String tupleSTypeName = data[i];
i++;
// String tupleSTypeTypeName = data[i];
i++;
String tupleSTypeType = data[i];
i++;
((TupleSType) tupleSType).addElement(
tupleSTypeName, new PrimitiveSType(
tupleSTypeName, tupleSTypeType));
while (!data[i].equals("END_TUPLE_ELEMENT")) {
i++;
}
}
// BEGIN_TUPLE,rest,END_TUPLE
if (data[i].equals("true")) {
// is rest
((TupleSType) sType).setRest(true);
}
i++;
if (data[i + 1].equals("END_TUPLE")) {
if (data[i].equals("true")) {
// is rest
((TupleSType) tupleSType).setRest(true);
}
i++;
sType = new ArraySType(tupleSType, arraySize);
((ArraySType) sType).setSTypeName(sTypeName);
}
}
} else {
sType = new ArraySType(new PrimitiveSType(arrayType,
sTypeType), arraySize);
((ArraySType) sType).setSTypeName(sTypeName);
}
i++;
// sTypeList.add(sType);
}
if (sTypeType.equals("List")) {
String listType = data[i];
if (listType.equals("BEGIN_TUPLE")) {
SType tupleSType = new TupleSType();
while (!data[i].equals("END_TUPLE")) {
if (data[i].equals("BEGIN_TUPLE_ELEMENT")) {
// data[i]="BEGIN_TUPLE_ELEMENT"
i++;
String tupleSTypeName = data[i];
i++;
// String tupleSTypeTypeName = data[i];
i++;
String tupleSTypeType = data[i];
i++;
((TupleSType) tupleSType).addElement(
tupleSTypeName, new PrimitiveSType(
tupleSTypeName, tupleSTypeType));
while (!data[i].equals("END_TUPLE_ELEMENT")) {
i++;
}
}
// BEGIN_TUPLE,rest,END_TUPLE
if (data[i].equals("true")) {
// is rest
((TupleSType) sType).setRest(true);
}
i++;
if (data[i + 1].equals("END_TUPLE")) {
if (data[i].equals("true")) {
// is rest
((TupleSType) tupleSType).setRest(true);
}
i++;
sType = new ListSType(tupleSType);
((ListSType) sType).setSTypeName(sTypeName);
}
}
} else {
i++;
String stypeName = data[i];
sType = new ListSType(new PrimitiveSType(stypeName,
sTypeName));
((ListSType) sType).setSTypeName(sTypeName);
}
i++;
}
if (sTypeType.equals("PrimitiveSType")) {
sType = new PrimitiveSType(sTypeName, data[3]);
i++;
}
RegisterSType.registerSType(store, sType);
} else if (data[0].equals("BEGIN_DTYPE")) {
int i = 0;
i++;
String dTypeName = data[i];
i++;
String dTypeType = data[i];
i++;
SType dType = null;
// List<SType> sTypeList = new ArrayList<SType>();
if (dTypeType.equals("TupleDType")) {
// BEGIN_TUPLE_ELEMENT,a,PrimitiveSType,primitiveSTypeDummyTestA,END_TUPLE_ELEMENT,
i++;
dType = new TupleSType();
((TupleSType) dType).setSTypeName(dTypeName);
while (!data[i].equals("END_TUPLE")) {
if (data[i].equals("BEGIN_TUPLE_ELEMENT")) {
// data[i]="BEGIN_TUPLE_ELEMENT"
i++;