MoneyWiseAnalysisSecurityAttr.java
/*
* MoneyWise: Finance Application
* Copyright 2012-2026. Tony Washer
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
* of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
package io.github.tonywasher.joceanus.moneywise.lethe.data.analysis.values;
import io.github.tonywasher.joceanus.metis.data.MetisDataType;
import io.github.tonywasher.joceanus.moneywise.lethe.data.analysis.base.MoneyWiseAnalysisAttribute;
/**
* SecurityAttribute enumeration.
*/
public enum MoneyWiseAnalysisSecurityAttr implements MoneyWiseAnalysisAttribute {
/**
* Units.
*/
UNITS,
/**
* Valuation.
*/
VALUATION,
/**
* Foreign Valuation.
*/
FOREIGNVALUE,
/**
* Valuation Delta.
*/
VALUEDELTA,
/**
* Foreign Valuation Delta.
*/
FOREIGNVALUEDELTA,
/**
* Exchange Rate.
*/
EXCHANGERATE,
/**
* Residual Cost.
*/
RESIDUALCOST,
/**
* Realised Gains.
*/
REALISEDGAINS,
/**
* GrowthAdjust.
*/
GROWTHADJUST,
/**
* Invested.
*/
INVESTED,
/**
* Foreign Invested Amount.
*/
FOREIGNINVESTED,
/**
* Dividend.
*/
DIVIDEND,
/**
* MarketGrowth.
*/
MARKETGROWTH,
/**
* ForeignMarketGrowth.
*/
FOREIGNMARKETGROWTH,
/**
* LocalMarketGrowth.
*/
LOCALMARKETGROWTH,
/**
* Currency Fluctuation.
*/
CURRENCYFLUCT,
/**
* Profit.
*/
PROFIT,
/**
* Profit.
*/
MARKETPROFIT,
/**
* CashInvested.
*/
CASHINVESTED,
/**
* Consideration.
*/
CONSIDERATION,
/**
* CashConsideration (returned cash).
*/
RETURNEDCASH,
/**
* StockConsideration (transferred value).
*/
XFERREDVALUE,
/**
* CostDilution.
*/
COSTDILUTION,
/**
* Capital Gain.
*/
CAPITALGAIN,
/**
* AllowedCost.
*/
ALLOWEDCOST,
/**
* XferredCost.
*/
XFERREDCOST,
/**
* Price.
*/
PRICE,
/**
* CashType.
*/
CASHTYPE;
/**
* The String name.
*/
private String theName;
@Override
public String toString() {
/* If we have not yet loaded the name */
if (theName == null) {
/* Load the name */
theName = MoneyWiseAnalysisValuesResource.getKeyForSecurityAttr(this).getValue();
}
/* return the name */
return theName;
}
@Override
public boolean isCounter() {
switch (this) {
case UNITS:
case RESIDUALCOST:
case REALISEDGAINS:
case GROWTHADJUST:
case DIVIDEND:
case INVESTED:
case FOREIGNINVESTED:
return true;
case MARKETGROWTH:
case FOREIGNMARKETGROWTH:
case LOCALMARKETGROWTH:
case CURRENCYFLUCT:
case PROFIT:
case MARKETPROFIT:
case VALUATION:
case FOREIGNVALUE:
case EXCHANGERATE:
case PRICE:
case VALUEDELTA:
case FOREIGNVALUEDELTA:
case XFERREDCOST:
case COSTDILUTION:
case CONSIDERATION:
case RETURNEDCASH:
case XFERREDVALUE:
case CASHINVESTED:
case CAPITALGAIN:
case ALLOWEDCOST:
case CASHTYPE:
default:
return false;
}
}
@Override
public MetisDataType getDataType() {
switch (this) {
case UNITS:
return MetisDataType.UNITS;
case PRICE:
return MetisDataType.PRICE;
case EXCHANGERATE:
case COSTDILUTION:
return MetisDataType.RATIO;
case CASHTYPE:
return MetisDataType.ENUM;
case VALUATION:
case FOREIGNVALUE:
case VALUEDELTA:
case FOREIGNVALUEDELTA:
case RESIDUALCOST:
case REALISEDGAINS:
case GROWTHADJUST:
case INVESTED:
case FOREIGNINVESTED:
case DIVIDEND:
case MARKETGROWTH:
case FOREIGNMARKETGROWTH:
case LOCALMARKETGROWTH:
case CURRENCYFLUCT:
case MARKETPROFIT:
case PROFIT:
case CONSIDERATION:
case RETURNEDCASH:
case XFERREDVALUE:
case XFERREDCOST:
case ALLOWEDCOST:
case CASHINVESTED:
case CAPITALGAIN:
default:
return MetisDataType.MONEY;
}
}
}