⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 kylefields.java

📁 创建中间企业对象层
💻 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 + -