/** * Copyright (C) 2009-2014 Cars and Tracks Development Project (CTDP). * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ package net.ctdp.rfdynhud.editor.util; import org.jagatoo.util.versioning.Version; import net.ctdp.rfdynhud.properties.Property; import net.ctdp.rfdynhud.properties.PropertyLoader; /** * Loads editor configuration files. * * @author Marvin Froehlich (CTDP) */ public class EditorPropertyLoader implements PropertyLoader { private String keyPrefix = null; private String currentKey = null; private String currentValue = null; private String effectiveKey = null; private Version sourceVersion = null; public void setKeyPrefix( String prefix ) { this.keyPrefix = prefix; if ( keyPrefix == null ) effectiveKey = currentKey; else effectiveKey = currentKey.substring( keyPrefix.length() ); } public final String getKeyPrefix() { return ( keyPrefix ); } public void setCurrentSetting( String key, String value ) { this.currentKey = key; this.currentValue = value; setKeyPrefix( keyPrefix ); } @Override public final String getCurrentKey() { return ( effectiveKey ); } @Override public final String getCurrentValue() { return ( currentValue ); } @Override public Version getSourceVersion() { return ( sourceVersion ); } @Override public boolean loadProperty( Property property ) { if ( property.isMatchingKey( effectiveKey ) ) { property.loadValue( this, currentValue ); return ( true ); } return ( false ); } }