Skip to content

Commit

Permalink
wip: update datatype for autoboxing and unboxing in java
Browse files Browse the repository at this point in the history
  • Loading branch information
SyntaxGalaxy committed Feb 25, 2025
1 parent 47071db commit 2feb818
Show file tree
Hide file tree
Showing 5 changed files with 55 additions and 22 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -22,18 +22,16 @@
import com.icst.android.appstudio.beans.utils.BeanArrayCloneUtils;

public class BooleanBlockBean extends ExpressionBlockBean<BooleanBlockBean> implements Serializable {

private DatatypeBean[] returnDatatypes;

public void setReturnDatatypes(DatatypeBean[] returnDatatypes) {
this.returnDatatypes = returnDatatypes;
}

@Override
public DatatypeBean[] getReturnDatatypes() {
DatatypeBean obj = new DatatypeBean();
obj.setClassImport("java.lang.Object");
obj.setClassName("Object");
obj.setImportNecessary(false);

DatatypeBean string = new DatatypeBean();
string.setClassImport("java.lang.Boolean");
string.setClassName("Boolean");
string.setImportNecessary(false);
return new DatatypeBean[] { obj, string };
return returnDatatypes;
}

@Override
Expand All @@ -46,6 +44,7 @@ public BooleanBlockBean cloneBean() {
clone.setElementsLayers(BeanArrayCloneUtils.clone(getElementsLayers()));
clone.setCodeSyntax(getCodeSyntax() == null ? null : new String(getCodeSyntax()));
clone.setBeanManifest(getBeanManifest() == null ? null : getBeanManifest());
clone.setReturnDatatypes(BeanArrayCloneUtils.cloneDatatypeBeanArray(getReturnDatatypes()));
return clone;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ public class BooleanBlockElementBean
private boolean bool;
private BooleanBlockBean booleanBlock;
private String key;
private DatatypeBean acceptedReturnType;

public void setKey(String key) {
this.key = key;
Expand Down Expand Up @@ -92,19 +93,20 @@ public <K extends BeanMetadata> ArrayList<K> getAllMetadata(Class<K> classType)

@Override
public DatatypeBean getAcceptedReturnType() {
DatatypeBean acceptedReturnType = new DatatypeBean();
acceptedReturnType.setImportNecessary(false);
acceptedReturnType.setClassImport("java.lang.Boolean");
acceptedReturnType.setClassName("Boolean");
return acceptedReturnType;
}

public void setAcceptedReturnType(DatatypeBean acceptedReturnType) {
this.acceptedReturnType = acceptedReturnType;
}

@Override
public BooleanBlockElementBean cloneBean() {
BooleanBlockElementBean clone = new BooleanBlockElementBean();
clone.setBool(new Boolean(getBool()));
clone.setBooleanBlock(getBooleanBlock() == null ? null : getBooleanBlock().cloneBean());
clone.setKey(getKey() == null ? null : new String(getKey()));
clone.setAcceptedReturnType(getAcceptedReturnType() == null ? null : getAcceptedReturnType().cloneBean());
return clone;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
import com.icst.android.appstudio.beans.BlockElementLayerBean;
import com.icst.android.appstudio.beans.BlockPaletteBean;
import com.icst.android.appstudio.beans.BooleanBlockElementBean;
import com.icst.android.appstudio.beans.DatatypeBean;
import com.icst.android.appstudio.beans.LabelBlockElementBean;
import com.icst.android.appstudio.beans.LayerBean;
import com.icst.android.appstudio.beans.RegularBlockBean;
Expand Down Expand Up @@ -56,8 +57,12 @@ private static RegularBlockBean ifBlock() {
ifLabel.setLabel("if");
layer1Elements.add(ifLabel);

DatatypeBean primitiveBoolean = new DatatypeBean();
primitiveBoolean.setClassName("boolean");

BooleanBlockElementBean inputBoolean = new BooleanBlockElementBean();
inputBoolean.setKey("mBoolean");
inputBoolean.setAcceptedReturnType(primitiveBoolean);
layer1Elements.add(inputBoolean);

layer1.setBlockElementBeans(layer1Elements);
Expand Down Expand Up @@ -95,8 +100,12 @@ private static RegularBlockBean ifElseBlock() {
ifLabel.setLabel("if");
layer1Elements.add(ifLabel);

DatatypeBean primitiveBoolean = new DatatypeBean();
primitiveBoolean.setClassName("boolean");

BooleanBlockElementBean inputBoolean = new BooleanBlockElementBean();
inputBoolean.setKey("mBoolean");
inputBoolean.setAcceptedReturnType(primitiveBoolean);
layer1Elements.add(inputBoolean);

layer1.setBlockElementBeans(layer1Elements);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
import com.icst.android.appstudio.beans.BlockElementLayerBean;
import com.icst.android.appstudio.beans.BlockPaletteBean;
import com.icst.android.appstudio.beans.BooleanBlockElementBean;
import com.icst.android.appstudio.beans.DatatypeBean;
import com.icst.android.appstudio.beans.LabelBlockElementBean;
import com.icst.android.appstudio.beans.LayerBean;
import com.icst.android.appstudio.beans.RegularBlockBean;
Expand Down Expand Up @@ -88,8 +89,12 @@ private static RegularBlockBean printBoolean() {
print.setLabel("print");
layer1Elements.add(print);

DatatypeBean primitiveBoolean = new DatatypeBean();
primitiveBoolean.setClassName("boolean");

BooleanBlockElementBean inputBoolean = new BooleanBlockElementBean();
inputBoolean.setKey("mBoolean");
inputBoolean.setAcceptedReturnType(primitiveBoolean);
layer1Elements.add(inputBoolean);

layer1.setBlockElementBeans(layer1Elements);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,14 +57,12 @@ private static BooleanBlockBean equalNumBool() {

ArrayList<BlockElementBean> layer1Elements = new ArrayList<BlockElementBean>();

DatatypeBean numDatatype = new DatatypeBean();
numDatatype.setClassImport("java.lang.Integer");
numDatatype.setClassName("Integer");
numDatatype.setImportNecessary(false);

DatatypeBean primitiveInteger = new DatatypeBean();
primitiveInteger.setClassName("int");

NumericBlockElementBean num1 = new NumericBlockElementBean();
num1.setKey("number1");
num1.setAcceptedReturnType(numDatatype.cloneBean());
num1.setAcceptedReturnType(primitiveInteger.cloneBean());
layer1Elements.add(num1);

LabelBlockElementBean isEqualLabel = new LabelBlockElementBean();
Expand All @@ -73,7 +71,7 @@ private static BooleanBlockBean equalNumBool() {

NumericBlockElementBean num2 = new NumericBlockElementBean();
num2.setKey("number2");
num2.setAcceptedReturnType(numDatatype.cloneBean());
num2.setAcceptedReturnType(primitiveInteger.cloneBean());
layer1Elements.add(num2);

layer1.setBlockElementBeans(layer1Elements);
Expand Down Expand Up @@ -134,8 +132,11 @@ private static NumericBlockBean stringToIntegerBlock() {
intDatatype.setClassImport("java.lang.Integer");
intDatatype.setClassName("Integer");
intDatatype.setImportNecessary(false);

DatatypeBean intPrimitiveDatatype = new DatatypeBean();
intPrimitiveDatatype.setClassName("int");

block.setReturnDatatypes(new DatatypeBean[] { obj, numDatatype, intDatatype });
block.setReturnDatatypes(new DatatypeBean[] { obj, numDatatype, intDatatype, intPrimitiveDatatype });

return block;
}
Expand All @@ -152,8 +153,13 @@ private static BooleanBlockBean notBlock() {
trueText.setLabel("not");
layer1Elements.add(trueText);

DatatypeBean primitiveBoolean = new DatatypeBean();
primitiveBoolean.setClassName("boolean");

BooleanBlockElementBean booleanField = new BooleanBlockElementBean();
booleanField.setAcceptedReturnType(primitiveBoolean.cloneBean());
booleanField.setKey("mBool");

layer1Elements.add(booleanField);

layer1.setBlockElementBeans(layer1Elements);
Expand All @@ -167,6 +173,8 @@ private static BooleanBlockBean notBlock() {
code.append(CodeFormatterUtils.getKeySyntaxString("mBool"));

block.setCodeSyntax(code.toString());
block.setReturnDatatypes(new DatatypeBean[] { primitiveBoolean.cloneBean() });

return block;
}

Expand All @@ -192,6 +200,11 @@ private static BooleanBlockBean trueBlock() {
code.append("true");

block.setCodeSyntax(code.toString());

DatatypeBean primitiveBoolean = new DatatypeBean();
primitiveBoolean.setClassName("boolean");

block.setReturnDatatypes(new DatatypeBean[] { primitiveBoolean });
return block;
}

Expand All @@ -217,6 +230,11 @@ private static BooleanBlockBean falseBlock() {
code.append("false");

block.setCodeSyntax(code.toString());

DatatypeBean primitiveBoolean = new DatatypeBean();
primitiveBoolean.setClassName("boolean");

block.setReturnDatatypes(new DatatypeBean[] { primitiveBoolean });
return block;
}

Expand Down

0 comments on commit 2feb818

Please sign in to comment.