/*******************************************************************************
* Copyright 2010 Simon Mieth
*
* 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 org.kabeja.common;
import java.util.Hashtable;
import java.util.Iterator;
import org.kabeja.entities.util.Utils;
import org.kabeja.util.Constants;
/**
* @author <a href="mailto:simon.mieth@gmx.de>Simon Mieth</a>
*
*
*
*/
public class Header {
private Hashtable variables = new Hashtable();
private long lastID = -1;
private Variable idHolder = null;
public Header() {
// init last free ID
Variable v = new Variable(Constants.HEADER_VARIABLE_HANDSEED);
v.setValue("5", "1");
this.variables.put(v.getName(), v);
}
public void setVariable(Variable v) {
variables.put(v.getName(), v);
}
public boolean hasVariable(String name) {
return variables.containsKey(name);
}
public Variable getVariable(String name) {
return (Variable) variables.get(name);
}
public Iterator getVarialbeIterator() {
return variables.values().iterator();
}
public boolean isFillMode() {
if (hasVariable(Constants.HEADER_VARIABLE_FILLMODE)
&& (getVariable(Constants.HEADER_VARIABLE_FILLMODE)
.getDoubleValue("70") > 0)) {
return true;
}
return false;
}
/**
* Returns the global linetype scale factor.
*
* @return the global scalefactor
*/
public double getLinetypeScale() {
double gscale = 1.0;
if (hasVariable("$LTSCALE")) {
gscale = getVariable("$LTSCALE").getDoubleValue("40");
}
return gscale;
}
public long getLastID() {
if (lastID == -1) {
if (hasVariable(Constants.HEADER_VARIABLE_HANDSEED)) {
idHolder = getVariable(Constants.HEADER_VARIABLE_HANDSEED);
String id = idHolder.getValue("5");
lastID = Utils.parseIDString(id);
}
}
return lastID;
}
public void setLastID(long id){
lastID = id;
}
}