PrometheusDataResource.java
/*
* Prometheus: Application Framework
* 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.prometheus.data;
import io.github.tonywasher.joceanus.oceanus.resource.OceanusBundleId;
import io.github.tonywasher.joceanus.oceanus.resource.OceanusBundleLoader;
import io.github.tonywasher.joceanus.metis.data.MetisDataItem.MetisDataFieldId;
import io.github.tonywasher.joceanus.prometheus.data.PrometheusDataSet.PrometheusCryptographyDataType;
import java.util.EnumMap;
import java.util.Map;
import java.util.ResourceBundle;
/**
* Resource IDs for jPrometheus Data Fields.
*/
public enum PrometheusDataResource
implements OceanusBundleId, MetisDataFieldId {
/**
* DataSet Name.
*/
DATASET_NAME("DataSet.Name"),
/**
* DataSet Version.
*/
DATASET_VERSION("DataSet.Version"),
/**
* DataSet Security.
*/
DATASET_SECURITY("DataSet.Security"),
/**
* DataItem Name.
*/
DATAITEM_NAME("DataItem.Name"),
/**
* DataItem Id.
*/
DATAITEM_ID("DataItem.Id"),
/**
* DataItem Type.
*/
DATAITEM_TYPE("DataItem.Type"),
/**
* DataItem Name.
*/
DATAITEM_BASE("DataItem.Base"),
/**
* DataItem Touch.
*/
DATAITEM_TOUCH("DataItem.Touch"),
/**
* DataItem Deleted.
*/
DATAITEM_DELETED("DataItem.Deleted"),
/**
* DataItem State.
*/
DATAITEM_STATE("DataItem.State"),
/**
* DataItem EditState.
*/
DATAITEM_EDITSTATE("DataItem.EditState"),
/**
* DataItem Header.
*/
DATAITEM_HEADER("DataItem.Header"),
/**
* DataItem Errors.
*/
DATAITEM_ERRORS("DataItem.Errors"),
/**
* DataItem History.
*/
DATAITEM_HISTORY("DataItem.History"),
/**
* DataItem Field Name.
*/
DATAITEM_FIELD_NAME("DataItem.Field.Name"),
/**
* DataItem Field Description.
*/
DATAITEM_FIELD_DESC("DataItem.Field.Desc"),
/**
* DataItem Error Validation.
*/
DATAITEM_ERROR_VALIDATION("DataItem.Error.Validation"),
/**
* DataItem Error Resolution.
*/
DATAITEM_ERROR_RESOLUTION("DataItem.Error.Resolution"),
/**
* DataItem Error Duplicate.
*/
DATAITEM_ERROR_DUPLICATE("DataItem.Error.Duplicate"),
/**
* DataItem Error Unknown.
*/
DATAITEM_ERROR_UNKNOWN("DataItem.Error.Unknown"),
/**
* DataItem Error Exist.
*/
DATAITEM_ERROR_EXIST("DataItem.Error.Exist"),
/**
* DataItem Error Unknown.
*/
DATAITEM_ERROR_MISSING("DataItem.Error.Missing"),
/**
* DataItem Error Length.
*/
DATAITEM_ERROR_LENGTH("DataItem.Error.Length"),
/**
* DataItem Error Negative.
*/
DATAITEM_ERROR_NEGATIVE("DataItem.Error.Negative"),
/**
* DataItem Error Positive.
*/
DATAITEM_ERROR_POSITIVE("DataItem.Error.Positive"),
/**
* DataItem Error Range.
*/
DATAITEM_ERROR_RANGE("DataItem.Error.Range"),
/**
* DataItem Error Disabled.
*/
DATAITEM_ERROR_DISABLED("DataItem.Error.Disabled"),
/**
* DataItem Error Create.
*/
DATAITEM_ERROR_CREATE("DataItem.Error.Create"),
/**
* DataItem Error Multiple.
*/
DATAITEM_ERROR_MULTIPLE("DataItem.Error.Multiple"),
/**
* DataItem Error Zero.
*/
DATAITEM_ERROR_ZERO("DataItem.Error.Zero"),
/**
* Asset Invalid Characters Error.
*/
DATAITEM_ERROR_INVALIDCHAR("DataItem.Error.InvalidChar"),
/**
* DataList Name.
*/
DATALIST_NAME("DataList.Name"),
/**
* DataList Style.
*/
DATALIST_STYLE("DataList.Style"),
/**
* DataList Maps.
*/
DATALIST_MAPS("DataList.Maps"),
/**
* DataMap Name.
*/
DATAMAP_NAME("DataMap.Name"),
/**
* DataMap Keys.
*/
DATAMAP_KEYS("DataMap.Keys"),
/**
* DataMap KeyCounts.
*/
DATAMAP_KEYCOUNTS("DataMap.KeyCounts"),
/**
* EncryptedItem Name.
*/
ENCRYPTED_NAME("Encrypted.Name"),
/**
* EncryptedItem Usage Error.
*/
ENCRYPTED_ERROR_USAGE("Encrypted.Error.Usage"),
/**
* StaticData Name.
*/
STATICDATA_NAME("Static.Name"),
/**
* StaticData Enabled.
*/
STATICDATA_ENABLED("Static.Enabled"),
/**
* StaticData SortOrder.
*/
STATICDATA_SORT("Static.Order"),
/**
* StaticData Class.
*/
STATICDATA_CLASS("Static.Class"),
/**
* StaticData Id Error.
*/
STATICDATA_ERROR_ID("Static.Error.BadId"),
/**
* StaticData Name Error.
*/
STATICDATA_ERROR_NAME("Static.Error.BadName"),
/**
* StaticDataMap Name.
*/
STATICDATAMAP_NAME("StaticMap.Name"),
/**
* StaticDataMap OrderCounts.
*/
STATICDATAMAP_ORDERCOUNTS("StaticMap.OrderCounts"),
/**
* DataInfo Name.
*/
DATAINFO_NAME("DataInfo.Name"),
/**
* DataInfo List.
*/
DATAINFO_LIST("DataInfo.List"),
/**
* DataInfo InfoType.
*/
DATAINFO_TYPE("DataInfo.Type"),
/**
* DataInfo Owner.
*/
DATAINFO_OWNER("DataInfo.Owner"),
/**
* DataInfo Value.
*/
DATAINFO_VALUE("DataInfo.Value"),
/**
* DataInfo Link.
*/
DATAINFO_LINK("DataInfo.Link"),
/**
* DataInfo ActiveSet.
*/
DATAINFO_ACTIVE("DataInfo.Active"),
/**
* DataInfo LinkSet.
*/
DATAINFO_LINKSET("DataInfo.LinkSet"),
/**
* DataInfo Bad Type Error.
*/
DATAINFO_ERROR_TYPE("DataInfo.Error.Type"),
/**
* DataInfo Bad Data Error.
*/
DATAINFO_ERROR_DATA("DataInfo.Error.Data"),
/**
* DataInfo Bad Class Error.
*/
DATAINFO_ERROR_CLASS("DataInfo.Error.Class"),
/**
* DataInfoSet Name.
*/
DATAINFOSET_NAME("DataInfoSet.Name"),
/**
* DataInfoSet Values.
*/
DATAINFOSET_VALUES("DataInfoSet.Values"),
/**
* DataInfoSet Values.
*/
DATAINFOSET_ERROR_BADSET("DataInfoSet.Error.BadSet"),
/**
* DataValues Children.
*/
DATAVALUES_CHILDREN("DataValues.Children"),
/**
* DataValues Child.
*/
DATAVALUES_CHILD("DataValues.Child"),
/**
* DataValues Type Attribute.
*/
DATAVALUES_ATTRTYPE("DataValues.AttrType"),
/**
* DataValues Size Attribute.
*/
DATAVALUES_ATTRSIZE("DataValues.AttrSize"),
/**
* DataValues Version Attribute.
*/
DATAVALUES_ATTRVER("DataValues.AttrVersion"),
/**
* DataGroup Name.
*/
DATAGROUP_NAME("DataGroup.Name"),
/**
* DataGroup Parent.
*/
DATAGROUP_PARENT("DataGroup.Parent"),
/**
* ControlKey Name.
*/
CONTROLKEY_NAME("ControlKey.Name"),
/**
* ControlKey List.
*/
CONTROLKEY_LIST("ControlKey.List"),
/**
* ControlKey List.
*/
CONTROLKEY_DATAKEYS("ControlKey.DataKeys"),
/**
* ControlKey FactoryLock.
*/
CONTROLKEY_LOCK("ControlKey.Lock"),
/**
* ControlKey Factory.
*/
CONTROLKEY_LOCKBYTES("ControlKey.LockBytes"),
/**
* ControlKey Database.
*/
CONTROLKEY_DATABASE("ControlKey.DataBase"),
/**
* KeySet CreationDate.
*/
CONTROLKEY_CREATION("ControlKey.CreationDate"),
/**
* DataKeySet Name.
*/
CONTROLKEYSET_NAME("ControlKeySet.Name"),
/**
* DataKeySet List.
*/
CONTROLKEYSET_LIST("ControlKeySet.List"),
/**
* DataKeySet Name.
*/
DATAKEYSET_NAME("DataKeySet.Name"),
/**
* DataKeySet List.
*/
DATAKEYSET_LIST("DataKeySet.List"),
/**
* KeySet KeySet.
*/
KEYSET_KEYSET("KeySet.KeySet"),
/**
* KeySet KeySetDefinition.
*/
KEYSET_KEYSETDEF("KeySet.KeySetDef"),
/**
* DataSet Encryptor.
*/
KEYSET_ENCRYPTOR("KeySet.Encryptor"),
/**
* ControlData Name.
*/
CONTROLDATA_NAME("ControlData.Name"),
/**
* ControlData List.
*/
CONTROLDATA_LIST("ControlData.List"),
/**
* ControlData Version.
*/
CONTROLDATA_VERSION("ControlData.Version"),
/**
* ControlData Already Exists Error.
*/
CONTROLDATA_ERROR_EXISTS("ControlData.Error.Exists"),
/**
* Initialise Security Task.
*/
TASK_SECURITY_INIT("Task.Security.Init"),
/**
* UpDate Security Task.
*/
TASK_SECURITY_UPDATE("Task.Security.Update"),
/**
* Check Security Task.
*/
TASK_SECURITY_CHECK("Task.Security.Check"),
/**
* ReNew Security Task.
*/
TASK_SECURITY_RENEW("Task.Security.ReNew"),
/**
* ReBase Data Task.
*/
TASK_DATA_REBASE("Task.Data.ReBase"),
/**
* Difference Data Task.
*/
TASK_DATA_DIFF("Task.Data.Diff");
/**
* The Name Map.
*/
private static final Map<PrometheusCryptographyDataType, OceanusBundleId> NAME_MAP = buildNameMap();
/**
* The List Map.
*/
private static final Map<PrometheusCryptographyDataType, OceanusBundleId> LIST_MAP = buildListMap();
/**
* The Resource Loader.
*/
private static final OceanusBundleLoader LOADER = OceanusBundleLoader.getLoader(PrometheusDataSet.class.getCanonicalName(),
ResourceBundle::getBundle);
/**
* The Id.
*/
private final String theKeyName;
/**
* The Value.
*/
private String theValue;
/**
* Constructor.
*
* @param pKeyName the key name
*/
PrometheusDataResource(final String pKeyName) {
theKeyName = pKeyName;
}
@Override
public String getKeyName() {
return theKeyName;
}
@Override
public String getNameSpace() {
return "Prometheus.data";
}
@Override
public String getValue() {
/* If we have not initialised the value */
if (theValue == null) {
/* Derive the value */
theValue = LOADER.getValue(this);
}
/* return the value */
return theValue;
}
@Override
public String getId() {
return getValue();
}
@Override
public String toString() {
return getValue();
}
/**
* Build item map.
*
* @return the map
*/
private static Map<PrometheusCryptographyDataType, OceanusBundleId> buildNameMap() {
/* Create the map and return it */
final Map<PrometheusCryptographyDataType, OceanusBundleId> myMap = new EnumMap<>(PrometheusCryptographyDataType.class);
myMap.put(PrometheusCryptographyDataType.CONTROLKEY, CONTROLKEY_NAME);
myMap.put(PrometheusCryptographyDataType.CONTROLKEYSET, CONTROLKEYSET_NAME);
myMap.put(PrometheusCryptographyDataType.DATAKEYSET, DATAKEYSET_NAME);
myMap.put(PrometheusCryptographyDataType.CONTROLDATA, CONTROLDATA_NAME);
return myMap;
}
/**
* Obtain key for name.
*
* @param pValue the Value
* @return the resource key
*/
protected static OceanusBundleId getKeyForCryptoItem(final PrometheusCryptographyDataType pValue) {
return OceanusBundleLoader.getKeyForEnum(NAME_MAP, pValue);
}
/**
* Build list map.
*
* @return the map
*/
private static Map<PrometheusCryptographyDataType, OceanusBundleId> buildListMap() {
/* Create the map and return it */
final Map<PrometheusCryptographyDataType, OceanusBundleId> myMap = new EnumMap<>(PrometheusCryptographyDataType.class);
myMap.put(PrometheusCryptographyDataType.CONTROLKEY, CONTROLKEY_LIST);
myMap.put(PrometheusCryptographyDataType.CONTROLKEYSET, CONTROLKEYSET_LIST);
myMap.put(PrometheusCryptographyDataType.DATAKEYSET, DATAKEYSET_LIST);
myMap.put(PrometheusCryptographyDataType.CONTROLDATA, CONTROLDATA_LIST);
return myMap;
}
/**
* Obtain key for cryptography list.
*
* @param pValue the Value
* @return the resource key
*/
protected static OceanusBundleId getKeyForCryptoList(final PrometheusCryptographyDataType pValue) {
return OceanusBundleLoader.getKeyForEnum(LIST_MAP, pValue);
}
}