kylefieldspool.java

来自「创建中间企业对象层」· Java 代码 · 共 92 行

JAVA
92
字号

 
package com.kyle.eobject;

import java.io.*;
import java.util.*;


public class KyleFieldsPool
{
	static private KyleFieldsPool instance; // 唯一实例
	
	/**
	* 返回唯一实例.如果是第一次调用此方法,则创建实例
	*
	* @return DBConnectionManager 唯一实例
	*/
	static synchronized public KyleFieldsPool getInstance()
	{
		if (instance == null) instance = new KyleFieldsPool();
		return instance;
	}

	/**
	* 建构函数私有以防止其它对象创建本类实例
	*/
	private KyleFieldsPool()
	{
	}

	public int getCount()
	{
		return pool.size();
	}
	
	public KyleFields get(String name)
	{
		KyleFields fields = null;
		for(int index=0;index<pool.size();index++)
		{
			try
			{
				fields = (KyleFields)pool.get(index);
				if(fields.getObjectName().equalsIgnoreCase(name)) return fields;
			}
			catch (Exception e)
			{
				pool.remove(index);
				continue;
			}
		}
		fields = add(name);
		return fields;
	}
	
	public KyleFields get(int index)
	{
		if(index<0 || index>=pool.size()) return null;
		try
		{
			return (KyleFields)pool.get(index);
		}
		catch (Exception e)
		{
			pool.remove(index);
		}
		return null;
	}

	private KyleFields add(String name)
	{
		String filepath = "D:\\work\\test\\file\\"+name+".tdf";
		KyleFields fields = new KyleFields();
		fields.setObjectName(name);
		fields.loadFromFile(filepath);
		pool.add(fields);
		System.out.println("Add Here!!");	
		return fields;
	}

	private ArrayList pool = new ArrayList();
	
	public static void main(String args[])
	{
		System.out.println("Test-------");	
		KyleFieldsPool pool = new KyleFieldsPool();
		System.out.println("First count = " + pool.getCount());
		KyleFields fields = pool.get("User");
		System.out.println("Last count = " + pool.getCount());
		System.out.println("fields's field count = " + fields.getCount());
	}	
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?