int pos = data.cfml.getPos();
String tmp=variableDec(data, true);
if(!StringUtil.isEmpty(tmp)) {
if(tmp.indexOf('.')!=-1) {
property.addAttribute(new Attribute(false,"type",LitString.toExprString(tmp),"string"));
hasType=true;
}
else {
data.cfml.setPos(pos);
}
}
else data.cfml.setPos(pos);
// folgend wird tlt extra nicht uebergeben, sonst findet pruefung statt
Attribute[] attrs = attributes(property,tlt,data,SEMI, NULL,Boolean.FALSE,"name",true);
checkSemiColonLineFeed(data,true,true);
property.setTagLibTag(tlt);
property.setScriptBase(true);
Attribute attr;
// first fill all regular attribute -> name="value"
for(int i=attrs.length-1;i>=0;i--){
attr=attrs[i];
if(!attr.getValue().equals(NULL)){
if(attr.getName().equalsIgnoreCase("name")){
hasName=true;
//attr=new Attribute(attr.isDynamicType(),attr.getName(),CastString.toExprString(attr.getValue()),"string");
}
else if(attr.getName().equalsIgnoreCase("type")){
hasType=true;
//attr=new Attribute(attr.isDynamicType(),attr.getName(),CastString.toExprString(attr.getValue()),"string");
}
property.addAttribute(attr);
}
}
// now fill name named attributes -> attr1 attr2
String first=null,second=null;
for(int i=0;i<attrs.length;i++){
attr=attrs[i];
if(attr.getValue().equals(NULL)){
// type
if(first==null && (!hasName || !hasType)){
first=attr.getName();
//type=new Attribute(false,"type",LitString.toExprString(attr.getName()),"string");
//property.addAttribute(type);
}
// name
else if(second==null && !hasName && !hasType){
second=attr.getName();
//name=new Attribute(false,"name",LitString.toExprString(attr.getName()),"string");
//property.addAttribute(name);
}
// attr with no value
else {
attr=new Attribute(true,attr.getName(),LitString.EMPTY,"string");
property.addAttribute(attr);
}
}
}
if(first!=null) {
hasName=true;
if(second!=null){
hasType=true;
property.addAttribute(new Attribute(false,"name",LitString.toExprString(second),"string"));
property.addAttribute(new Attribute(false,"type",LitString.toExprString(first),"string"));
}
else {
property.addAttribute(new Attribute(false,"name",LitString.toExprString(first),"string"));
}
}
if(!hasType)
property.addAttribute(ANY);