package org.ripple.power.txns; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; import java.util.Set; import com.ripple.core.enums.TransactionFlag; public class TransactionFlagMap { private final static HashMap<Long, String> _flags = new HashMap<Long, String>( 30); static { // Constraints flags: _flags.put(TransactionFlag.FullyCanonicalSig, "FullyCanonicalSig"); _flags.put(TransactionFlag.Universal, "Universal"); _flags.put(TransactionFlag.UniversalMask, "UniversalMask"); _flags.put(TransactionFlag.RequireDestTag, "RequireDestTag"); _flags.put(TransactionFlag.OptionalDestTag, "OptionalDestTag"); _flags.put(TransactionFlag.RequireAuth, "RequireAuth"); _flags.put(TransactionFlag.OptionalAuth, "OptionalAuth"); _flags.put(TransactionFlag.DisallowXRP, "DisallowXRP"); _flags.put(TransactionFlag.AllowXRP, "AllowXRP"); _flags.put(TransactionFlag.AccountSetMask, "AccountSetMask"); _flags.put(TransactionFlag.asfRequireDest, "asfRequireDest"); _flags.put(TransactionFlag.asfRequireAuth, "asfRequireAuth"); _flags.put(TransactionFlag.asfDisallowXRP, "asfDisallowXRP"); _flags.put(TransactionFlag.asfDisableMaster, "asfDisableMaster"); _flags.put(TransactionFlag.asfAccountTxnID, "asfAccountTxnID"); _flags.put(TransactionFlag.asfNoFreeze, "asfNoFreeze"); _flags.put(TransactionFlag.asfGlobalFreeze, "asfGlobalFreeze"); // OfferCreate flags: _flags.put(TransactionFlag.Passive, "Passive"); _flags.put(TransactionFlag.ImmediateOrCancel, "ImmediateOrCancel"); _flags.put(TransactionFlag.FillOrKill, "FillOrKill"); _flags.put(TransactionFlag.Sell, "Sell"); _flags.put(TransactionFlag.OfferCreateMask, "OfferCreateMask"); // Payment flags: _flags.put(TransactionFlag.NoRippleDirect, "NoRippleDirect"); _flags.put(TransactionFlag.PartialPayment, "PartialPayment"); _flags.put(TransactionFlag.LimitQuality, "LimitQuality"); _flags.put(TransactionFlag.PaymentMask, "PaymentMask"); // TrustSet flags: _flags.put(TransactionFlag.SetAuth, "SetAuth"); _flags.put(TransactionFlag.SetNoRipple, "SetNoRipple"); _flags.put(TransactionFlag.ClearNoRipple, "ClearNoRipple"); _flags.put(TransactionFlag.SetFreeze, "SetFreeze"); _flags.put(TransactionFlag.ClearFreeze, "ClearFreeze"); _flags.put(TransactionFlag.TrustSetMask, "TrustSetMask"); // Special flags: _flags.put(0x30000L, "Cheater"); _flags.put(0L, "Empty"); } public final static String getString(long flag) { String result = _flags.get(flag); return result == null ? "Unkown" : result; } public final static long getFlag(String name) { Set<Map.Entry<Long, String>> set = _flags.entrySet(); for (Iterator<Map.Entry<Long, String>> it = set.iterator(); it .hasNext();) { Entry<Long, String> result = it.next(); if (result.getValue().equalsIgnoreCase(name)) { return result.getKey(); } } return 0; } public final static ArrayList<String> values() { ArrayList<String> list = new ArrayList<String>(_flags.size()); for (String v : _flags.values()) { list.add(v); } return list; } }