Add Value for implementing custom type variables
Dieser Commit ist enthalten in:
Ursprung
ddf8182041
Commit
d2cc401c61
@ -0,0 +1,130 @@
|
||||
package de.steamwar.bausystem.features.script.variables;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
|
||||
public interface Value {
|
||||
long asLong();
|
||||
boolean asBoolean();
|
||||
String asString();
|
||||
|
||||
void fromLong(long value);
|
||||
void fromBoolean(boolean value);
|
||||
void fromString(String value);
|
||||
|
||||
@AllArgsConstructor
|
||||
class LongValue implements Value {
|
||||
|
||||
private long value;
|
||||
|
||||
@Override
|
||||
public long asLong() {
|
||||
return value;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean asBoolean() {
|
||||
return value != 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String asString() {
|
||||
return value + "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fromLong(long value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fromBoolean(boolean value) {
|
||||
this.value = value ? 1 : 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fromString(String value) {
|
||||
try {
|
||||
this.value = Long.parseLong(value);
|
||||
} catch (NumberFormatException e) {
|
||||
this.value = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@AllArgsConstructor
|
||||
class BooleanValue implements Value {
|
||||
|
||||
private boolean value;
|
||||
|
||||
@Override
|
||||
public long asLong() {
|
||||
return value ? 1 : 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean asBoolean() {
|
||||
return value;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String asString() {
|
||||
return value + "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fromLong(long value) {
|
||||
this.value = value != 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fromBoolean(boolean value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fromString(String value) {
|
||||
this.value = value.equalsIgnoreCase("true") || value.equalsIgnoreCase("yes");
|
||||
}
|
||||
}
|
||||
|
||||
@AllArgsConstructor
|
||||
class StringValue implements Value {
|
||||
|
||||
private String value;
|
||||
|
||||
@Override
|
||||
public long asLong() {
|
||||
try {
|
||||
return Long.parseLong(value);
|
||||
} catch (NumberFormatException e) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean asBoolean() {
|
||||
return value.equalsIgnoreCase("true") || value.equalsIgnoreCase("yes");
|
||||
}
|
||||
|
||||
@Override
|
||||
public String asString() {
|
||||
return value;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fromLong(long value) {
|
||||
this.value = value + "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fromBoolean(boolean value) {
|
||||
this.value = value + "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fromString(String value) {
|
||||
this.value = value;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
In neuem Issue referenzieren
Einen Benutzer sperren