All Downloads are FREE. Search and download functionalities are using the official Maven repository.

stream.data.DataUtils Maven / Gradle / Ivy

/*
 *  streams library
 *
 *  Copyright (C) 2011-2014 by Christian Bockermann, Hendrik Blom
 * 
 *  streams is a library, API and runtime environment for processing high
 *  volume data streams. It is composed of three submodules "stream-api",
 *  "stream-core" and "stream-runtime".
 *
 *  The streams library (and its submodules) is free software: you can 
 *  redistribute it and/or modify it under the terms of the 
 *  GNU Affero General Public License as published by the Free Software 
 *  Foundation, either version 3 of the License, or (at your option) any 
 *  later version.
 *
 *  The stream.ai library (and its submodules) is distributed in the hope
 *  that it will be useful, but WITHOUT ANY WARRANTY; without even the implied 
 *  warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU Affero General Public License for more details.
 *
 *  You should have received a copy of the GNU Affero General Public License
 *  along with this program.  If not, see http://www.gnu.org/licenses/.
 */
package stream.data;

import java.io.Serializable;
import java.util.LinkedHashSet;
import java.util.Set;

import stream.Data;

/**
 * 

* This class provides some static convenience methods for accessing data items. * In general, each data item represents a (key,value) mapping. Some keys may * refer to special ones, as determined by their string-value. *

*

* For example, keys starting with _ are regarded as special keys * and will not be processed by learning algorithms. Likewise, keys starting * with ._ will be considered as hidden keys. *

* * @author Christian Bockermann <[email protected]> */ public class DataUtils { /** * Returns the list of non-special, non-hidden keys of the * given data item. * * @param item * @return */ public final static Set getKeys(Data item) { Set set = new LinkedHashSet(); for (String key : item.keySet()) { if (!isSpecial(key) && !isHidden(key)) set.add(key); } return set; } /** * Returns the set of special keys contained in the given data item. It will * not return any hidden keys! * * @param item * @return */ public final static Set getSpecialKeys(Data item) { Set set = new LinkedHashSet(); for (String key : item.keySet()) if (isSpecial(key) && !isHidden(key)) set.add(key); return set; } /** * Returns the given data item, with the specified key being hidden. * * @param key * @param item * @return * @deprecated */ public final static Data hide(String key, Data item) { if (item.containsKey(key)) { Serializable o = item.remove(key); item.put(Data.HIDDEN_PREFIX + key, o); } return item; } /** * Returns the given data item, with the specified hidden key being * un-hidden. * * @param key * @param item * @return * @deprecated */ public final static Data unhide(String key, Data item) { String hidden = Data.HIDDEN_PREFIX + key; if (item.containsKey(hidden)) { Serializable o = item.remove(hidden); item.put(key, o); } return item; } /** * Checks if the given key is a special key. Annotations are special keys as * well. * * @param key * @return */ public final static boolean isSpecial(String key) { return key.startsWith(Data.SPECIAL_PREFIX) || isAnnotation(key); } /** * Checks if the given key is a hidden key. * * @param key * @return * @deprecated */ public final static boolean isHidden(String key) { return key.startsWith(Data.HIDDEN_PREFIX); } public final static boolean isAnnotation(String key) { return key != null && key.startsWith(Data.ANNOTATION_PREFIX); } public final static boolean isFeature(String key) { return key != null && !isAnnotation(key) && !isHidden(key); } /** * @param key * @return * @deprecated */ public final static String hide(String key) { if (key.startsWith(Data.HIDDEN_PREFIX)) return key; return Data.HIDDEN_PREFIX + key; } public final static boolean isHiddenOrSpecial(String key) { return isHidden(key) || isSpecial(key); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy