org.beigesoft.settings.holder.HldFieldsSettings Maven / Gradle / Ivy
package org.beigesoft.settings.holder;
/*
* Copyright (c) 2017 Beigesoft ™
*
* Licensed under the GNU General Public License (GPL), 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.gnu.org/licenses/old-licenses/gpl-2.0.en.html
*/
import org.beigesoft.holder.IHolderForClassByName;
import org.beigesoft.settings.IMngSettings;
/**
* Delegate that get field setting from Beige-Settings,
* e.g. converter's to/from string name.
*
* @author Yury Demidenko
*/
public class HldFieldsSettings
implements IHolderForClassByName {
/**
* Manager settings.
**/
private IMngSettings mngSettings;
/**
* Setting name.
**/
private final String settingName;
/**
* Only constructor.
* @param pSettingName reference
**/
public HldFieldsSettings(final String pSettingName) {
this.settingName = pSettingName;
}
/**
* Get thing for given class and field name.
* @param pClass a Class
* @param pFieldName Field Name
* @return a thing
**/
@Override
public final String getFor(final Class> pClass,
final String pFieldName) {
String result;
try {
result = this.mngSettings.getFieldsSettings().get(pClass).get(pFieldName)
.get(this.settingName);
} catch (Exception e) {
throw new RuntimeException(
"Can't get class/field/setting: " + pClass + "/"
+ pFieldName + "/" + this.settingName);
}
return result;
}
/**
* Set thing for given class and field name.
* @param pThing Thing
* @param pClass Class
* @param pFieldName Field Name
**/
@Override
public final void setFor(final String pThing,
final Class> pClass, final String pFieldName) {
this.mngSettings.getFieldsSettings().get(pClass).get(pFieldName)
.put(this.settingName, pThing);
}
//Simple getters and setters:
/**
* Getter for mngSettings.
* @return IMngSettings
**/
public final IMngSettings getMngSettings() {
return this.mngSettings;
}
/**
* Setter for mngSettings.
* @param pMngSettings reference
**/
public final void setMngSettings(final IMngSettings pMngSettings) {
this.mngSettings = pMngSettings;
}
/**
* Getter for settingName.
* @return String
**/
public final String getSettingName() {
return this.settingName;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy