com.vectorprint.configuration.EnhancedMap Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of VectorPrintConfig Show documentation
Show all versions of VectorPrintConfig Show documentation
A library for configuration of applications and parameterization of objects. Settings can be provided in a configfile (file, url, stream), as arguments and programmatically, object parameters can be set using annotations or code. Both provide data type support, serialization, cloning, a help mechanism.
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.vectorprint.configuration;
/*
* #%L
* VectorPrintConfig3.0
* %%
* Copyright (C) 2011 - 2013 VectorPrint
* %%
* 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.
* #L%
*/
import com.vectorprint.configuration.observing.KeyValueObservable;
import com.vectorprint.configuration.observing.PrepareKeyValue;
import java.awt.Color;
import java.io.PrintStream;
import java.io.Serializable;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Collection;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* This interface describes map enhancements for typing support, multiple value support, key based help and preparing keys and values before addition.
*
* @see KeyValueObservable
* @author Eduard Drenth at VectorPrint.nl
*/
public interface EnhancedMap extends Map, Cloneable, Serializable {
boolean getBooleanProperty(String key, Boolean defaultValue);
Color getColorProperty(String key, Color defaultValue);
double getDoubleProperty(String key, Double defaultValue);
short getShortProperty(String key, Short defaultValue);
char getCharProperty(String key, Character defaultValue);
byte getByteProperty(String key, Byte defaultValue);
short[] getShortProperties(String key, short[] defaultValue);
char[] getCharProperties(String key, char[] defaultValue);
byte[] getByteProperties(String key, byte[] defaultValue);
float getFloatProperty(String key, Float defaultValue);
int getIntegerProperty(String key, Integer defaultValue);
long getLongProperty(String key, Long defaultValue);
String getProperty(String key);
String getProperty(String key, String defaultValue);
URL getURLProperty(String key, URL defaultValue) throws MalformedURLException;
String[] getStringProperties(String key, String[] defaultValue);
URL[] getURLProperties(String key, URL[] defaultValue) throws MalformedURLException;
float[] getFloatProperties(String key, float[] defaultValue);
double[] getDoubleProperties(String key, double[] defaultValue);
int[] getIntegerProperties(String key, int[] defaultValue);
long[] getLongProperties(String key, long[] defaultValue);
boolean[] getBooleanProperties(String key, boolean[] defaultValue);
Color[] getColorProperties(String key, Color[] defaultValue);
Date getDateProperty(String key, Date defaultValue);
Date[] getDateProperties(String key, Date[] defaultValue);
T getGenericProperty(String key, T defaultValue, Class clazz);
PropertyHelp getHelp(String key);
Map getHelp();
String printHelp();
void listProperties(PrintStream ps);
public void setHelp(Map h);
public void addFromArguments(String[] args);
public void addObserver(PrepareKeyValue observer);
public EnhancedMap clone();
/**
* return a collection of keys not used sofar in the settings.
* @return
*/
public Collection getUnusedKeys();
/**
* return a collection of keys not present in the settings, for which defaults where used instead.
* @return
*/
public Collection getKeysNotPresent();
/**
* each set of properties is suggested to have a unique id
* @return
*/
String getId();
List getCommentBeforeKey(String key);
List getTrailingComment();
EnhancedMap addCommentBeforeKey(String key, String comment);
EnhancedMap addTrailingComment(String comment);
}