📄 kylefields.java
字号:
package com.kyle.eobject;
import java.util.*;
public class KyleFields
{
public KyleFields()
{
}
public String getObjectName()
{
return objectName;
}
public void setObjectName(String value)
{
if(value!=null)objectName=value.trim();
}
public int getCount()
{
return fields.length;
}
public int getIndex(String name)
{
if (getCount()==0) return -1;
for(int i=0;i<getCount();i++)
{
if(fields[i].getName().equalsIgnoreCase(name)) return i;
}
return -1;
}
public KyleField getField(int index)
{
if (index<0 || index>=getCount()) return null;
return fields[index];
}
public KyleField getField(String name)
{
int index=getIndex(name);
return getField(index);
}
//从文件装载
public void loadFromFile(String file)
{
String sourceType=null;
String sourceName=null;
String str=null;
StringList list=new StringList();
String name=null;
String type=null;
int length=0;
String refer=null;
String referfield=null;
list.load(file);
if(list.getSize()==0) return;
sourceType=list.value(tagSourceType).trim();
sourceName=list.value(tagSourceName).trim();
if(!sourceType.equalsIgnoreCase(keyType)) return;
for(int i=0;i<list.getSize();i++)
{
str=list.name(i);
if(str.toLowerCase().startsWith(tagField))
{
name=str.substring(tagField.length(),str.length());
str=list.value(i).trim();
if(str.length()==0) continue;
StringTokenizer st =new StringTokenizer(str);
if(!st.hasMoreTokens()) continue;
type=st.nextToken();
if(!st.hasMoreTokens()) continue;
try
{
length=Integer.parseInt(st.nextToken());
}
catch (Exception e) { continue;}
while (st.hasMoreTokens())
{
str=st.nextToken();
if(str.startsWith(tagRef))
{
str=str.substring(tagRef.length(),str.length()).trim();
String[] ary = str.split(tagRefSplit);
if(ary.length!=2) break;
refer=ary[0];
referfield=ary[1];
}
}
addField(name,type,length,refer,referfield);
}
}
}
//增加数据
public void addField(String name,
String type,
int length,
String refer,
String referfield)
{
if (getIndex(name)==-1)
{
KyleField field=new KyleField();
field.setName(name);
field.setLength(length);
field.setType(type);
field.setRefer(refer);
field.setReferfield(referfield);
addStdField(field);
}
}
public void addField(KyleField field)
{
if (getIndex(field.getName())==-1) addStdField(field);
}
protected void addStdField(KyleField field)
{
int len = fields.length ;
KyleField[] newfields = new KyleField[len + 1];
System.arraycopy(fields, 0, newfields, 0, len);
newfields[len] = field;
fields = newfields;
}
private static String keyType="table";
private static String tagSourceType="type";
private static String tagSourceName="source";
private static String tagField="field.";
private static String tagRef="->";
private static String tagRefSplit="[.]";
private KyleField[] fields = new KyleField[0];
private String objectName = "";
public static void main(String args[]) throws Exception
{
System.out.println("Test");
KyleFields fields = new KyleFields();
fields.loadFromFile("D:\\work\\test\\file\\User.tdf");
System.out.println(fields.getCount());
System.out.println(fields.getField("orgid").getRefer());
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -