2017-10-02 19:34:50 +00:00
|
|
|
package cy.agorise.graphenej;
|
2016-11-21 17:50:30 +00:00
|
|
|
|
2017-06-26 19:05:33 +00:00
|
|
|
import com.google.gson.annotations.Expose;
|
|
|
|
|
2018-10-09 16:32:46 +00:00
|
|
|
import java.util.Locale;
|
|
|
|
|
2016-11-21 17:50:30 +00:00
|
|
|
/**
|
|
|
|
* <p>
|
|
|
|
* Generic class used to represent a graphene object as defined in
|
|
|
|
* <a href="http://docs.bitshares.org/development/blockchain/objects.html"></a>
|
|
|
|
* </p>
|
|
|
|
* Created by nelson on 11/8/16.
|
|
|
|
*/
|
|
|
|
public class GrapheneObject {
|
2017-01-30 03:00:39 +00:00
|
|
|
public static final String KEY_ID = "id";
|
|
|
|
|
2017-01-13 21:21:51 +00:00
|
|
|
public static final int PROTOCOL_SPACE = 1;
|
|
|
|
public static final int IMPLEMENTATION_SPACE = 2;
|
|
|
|
|
2017-06-26 19:05:33 +00:00
|
|
|
@Expose
|
2017-01-13 21:21:51 +00:00
|
|
|
protected String id;
|
2017-06-26 19:05:33 +00:00
|
|
|
|
2016-11-21 17:50:30 +00:00
|
|
|
protected int space;
|
|
|
|
protected int type;
|
|
|
|
protected long instance;
|
|
|
|
|
|
|
|
public GrapheneObject(String id){
|
2017-01-13 21:21:51 +00:00
|
|
|
this.id = id;
|
2016-11-21 17:50:30 +00:00
|
|
|
String[] parts = id.split("\\.");
|
|
|
|
if(parts.length == 3){
|
|
|
|
this.space = Integer.parseInt(parts[0]);
|
|
|
|
this.type = Integer.parseInt(parts[1]);
|
|
|
|
this.instance = Long.parseLong(parts[2]);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
*
|
2018-10-09 16:32:46 +00:00
|
|
|
* @return A String containing the full object apiId in the form {space}.{type}.{instance}
|
2016-11-21 17:50:30 +00:00
|
|
|
*/
|
|
|
|
public String getObjectId(){
|
2018-10-09 16:32:46 +00:00
|
|
|
return String.format(Locale.US, "%d.%d.%d", space, type, instance);
|
2016-11-21 17:50:30 +00:00
|
|
|
}
|
2017-01-13 21:21:51 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Returns the type of this object.
|
2018-10-09 16:32:46 +00:00
|
|
|
* @return Instance of the ObjectType enum.
|
2017-01-13 21:21:51 +00:00
|
|
|
*/
|
|
|
|
public ObjectType getObjectType(){
|
|
|
|
switch(space){
|
|
|
|
case PROTOCOL_SPACE:
|
|
|
|
switch(type){
|
|
|
|
case 1:
|
|
|
|
return ObjectType.BASE_OBJECT;
|
|
|
|
case 2:
|
|
|
|
return ObjectType.ACCOUNT_OBJECT;
|
|
|
|
case 3:
|
|
|
|
return ObjectType.ASSET_OBJECT;
|
|
|
|
case 4:
|
|
|
|
return ObjectType.FORCE_SETTLEMENT_OBJECT;
|
|
|
|
case 5:
|
|
|
|
return ObjectType.COMMITTEE_MEMBER_OBJECT;
|
|
|
|
case 6:
|
|
|
|
return ObjectType.WITNESS_OBJECT;
|
|
|
|
case 7:
|
|
|
|
return ObjectType.LIMIT_ORDER_OBJECT;
|
|
|
|
case 8:
|
|
|
|
return ObjectType.CALL_ORDER_OBJECT;
|
|
|
|
case 9:
|
|
|
|
return ObjectType.CUSTOM_OBJECT;
|
|
|
|
case 10:
|
|
|
|
return ObjectType.PROPOSAL_OBJECT;
|
|
|
|
case 11:
|
|
|
|
return ObjectType.OPERATION_HISTORY_OBJECT;
|
|
|
|
case 12:
|
|
|
|
return ObjectType.WITHDRAW_PERMISSION_OBJECT;
|
|
|
|
case 13:
|
|
|
|
return ObjectType.VESTING_BALANCE_OBJECT;
|
|
|
|
case 14:
|
|
|
|
return ObjectType.WORKER_OBJECT;
|
|
|
|
case 15:
|
|
|
|
return ObjectType.BALANCE_OBJECT;
|
2019-07-30 21:40:19 +00:00
|
|
|
case 16:
|
|
|
|
return ObjectType.HTLC_OBJECT;
|
2017-01-13 21:21:51 +00:00
|
|
|
}
|
|
|
|
case IMPLEMENTATION_SPACE:
|
|
|
|
switch(type){
|
2017-01-19 03:29:38 +00:00
|
|
|
case 0:
|
2017-01-13 21:21:51 +00:00
|
|
|
return ObjectType.GLOBAL_PROPERTY_OBJECT;
|
2017-01-19 03:29:38 +00:00
|
|
|
case 1:
|
2017-01-13 21:21:51 +00:00
|
|
|
return ObjectType.DYNAMIC_GLOBAL_PROPERTY_OBJECT;
|
|
|
|
case 3:
|
|
|
|
return ObjectType.ASSET_DYNAMIC_DATA;
|
|
|
|
case 4:
|
|
|
|
return ObjectType.ASSET_BITASSET_DATA;
|
|
|
|
case 5:
|
|
|
|
return ObjectType.ACCOUNT_BALANCE_OBJECT;
|
|
|
|
case 6:
|
|
|
|
return ObjectType.ACCOUNT_STATISTICS_OBJECT;
|
|
|
|
case 7:
|
|
|
|
return ObjectType.TRANSACTION_OBJECT;
|
|
|
|
case 8:
|
|
|
|
return ObjectType.BLOCK_SUMMARY_OBJECT;
|
|
|
|
case 9:
|
|
|
|
return ObjectType.ACCOUNT_TRANSACTION_HISTORY_OBJECT;
|
|
|
|
case 10:
|
|
|
|
return ObjectType.BLINDED_BALANCE_OBJECT;
|
|
|
|
case 11:
|
|
|
|
return ObjectType.CHAIN_PROPERTY_OBJECT;
|
|
|
|
case 12:
|
|
|
|
return ObjectType.WITNESS_SCHEDULE_OBJECT;
|
|
|
|
case 13:
|
|
|
|
return ObjectType.BUDGET_RECORD_OBJECT;
|
|
|
|
case 14:
|
|
|
|
return ObjectType.SPECIAL_AUTHORITY_OBJECT;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return null;
|
|
|
|
}
|
2017-01-19 03:29:38 +00:00
|
|
|
}
|