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

📄 jsourcecodewizardfield.java

📁 用免疫遗传算法解决TSP问题
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/**
 * IgaLib -> wizard
 * Copyright (C) 2001  Tosiki IGA , IgaLib project member
 *   (http://homepage2.nifty.com/igat/igapyon/index.html)
 * 
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 * 
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 * 
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

package jp.ne.nifty.iga.tosiki.wizard;

import jp.ne.nifty.iga.tosiki.wizard.wiz.*;
import jp.ne.nifty.iga.tosiki.string.IndentWriter;
import java.io.*;
import java.util.*;

/**
 * JSourceCodeWizard 偺僿儖僷乕僋儔僗<BR>
 * 僼傿乕儖僪(崁栚)傪昞尰偡傞僋儔僗偱偡<BR>
 *
 * @author Tosiki IGA
 */
public class JSourceCodeWizardField
	extends JSourceCodeWizardFieldAbstract
{
	protected JSourceCodeWizardChannel f_channel=null;

	/**
	 * channel(僠儍儞僱儖) 偺setter<BR>
	 * 
	 *   @param JSourceCodeWizardChannel arg channel(僠儍儞僱儖)
	 */
	public void setChannel(JSourceCodeWizardChannel arg)
	{
		f_channel=arg;
	}

	/**
	 * channel(僠儍儞僱儖) 偺getter<BR>
	 * 
	 *   @return JSourceCodeWizardChannel f_channel(僠儍儞僱儖)
	 */
	public JSourceCodeWizardChannel getChannel()
	{
		return f_channel;
	}

	public void printDescriptions(JSourceCodeWizard wizard,IndentWriter out)
	{
		boolean isFirst=true;
		if(getDescription()!=null)
		{
			if(isFirst)
			{
				out.println("");
				isFirst=false;
			}
			out.println(wizard.getString("src.common.description",new Object[]{getDescription()}));
		}
		if(getType()!=null)
		{
			if(isFirst)
			{
				out.println("");
				isFirst=false;
			}
			out.println("宆:"+getType()+"<BR>");
		}
		if(getChild()!=null)
		{
			out.println("巕嫙偺宆:"+getChild()+"<BR>");
		}
		if(getDelegate()!=null)
		{
			out.println("埾忳愭:"+getDelegate()+"<BR>");
		}
		if(isPrimary())
		{
			out.println("僾儔僀儅儕僉乕<BR>");
		}
		if(getLength()!=(-1))
		{
			out.println("挿偝:"+getLength()+"<BR>");
		}
		if(getDefault()!=null)
		{
			out.println("僨僼僅儖僩抣:["+getDefault()+"]<BR>");
		}
		if(getNotNull())
		{
			out.println("旕NULL惂栺偁傝<BR>");
		}
	}

	public void processInitialize(JSourceCodeWizard wizard)
	{
		if(getDelegate()!=null)
		{
			JSourceCodeWizardField field=findDelegateField(wizard);
			if(field==null)return;
			setTitle(field.getTitle());
			setDescription(field.getDescription());
			setType(field.getType());
			setDefault(field.getDefault());
			setLength(field.getLength());
		}
	}

	/**
	 * write getter - setter <BR>
	 */
	public static final void writeGetSet(
		JSourceCodeWizard wizard,JSourceCodeWizardChannel dataChannel,ArrayList vecItem,IndentWriter out)
		throws IOException
	{
		out.addIndent(1);

		for(int index=0;index<vecItem.size();index++)
		{
			JSourceCodeWizardField item=(JSourceCodeWizardField)vecItem.get(index);
			out.beginComment();
			out.println(wizard.getString("src.field.setter.1",new Object[]{item.getName()+"("+item.getTitle()+")"}));
			item.printDescriptions(wizard,out);
			out.println("");
			out.println("  @param "+WizType.getWizAlterType(item.getType())+" arg "+item.getName()+"("+item.getTitle()+")");
			out.endComment();
			out.println("public void set"+JSourceCodeWizardProcessor.getUpper(item.getName())+"("+WizType.getWizAlterType(item.getType())+" arg)");
			out.println("{");
			if("String".equals(WizType.getWizAlterType(item.getType()))
			&& item.getLength()>0)
			{
				out.println(1,"arg=subString(arg,0,"+item.getLength()+");");
			}

			// 戙擖偺慜偵幚巤偡傋偒偙偲
			if("java.math.BigDecimal".equals(item.getType()))
			{
				// 栤戣偲偟偰巆偭偰偄傑偡丅
				// 堦懱 偳偺悢抣傪擖傟傞傋偒側偺偱偟傚偆丅
				out.println(1,"arg.setScale("+item.getFractionLength()+",java.math.BigDecimal.ROUND_HALF_UP);");

				// 偙傟偼娫堘偄偺柾條丅out.println(1,"arg.setScale("+item.getLength()+");");
			}

			if(item.getDelegate()==null)
			{
				out.println(1,item.getTitleFieldName()+WizType.getLoadPatternForType(item.getType(),"arg")+";");
			}
			else
			{
				JSourceCodeWizardField fieldDelegate=item.findDelegateField(wizard);
				if(fieldDelegate!=null)out.println(1,"f_"+fieldDelegate.getChannel().getName()+".set"+JSourceCodeWizardProcessor.getUpper(fieldDelegate.getName())+"(arg);");
			}

			out.println("}");
			out.println();

			out.beginComment();
			out.println(item.getName()+"("+item.getTitle()+") 偺getter<BR>");
			item.printDescriptions(wizard,out);
			out.println("");
			out.println("  @return "+WizType.getWizAlterType(item.getType())+" "+item.getTitleFieldName()+"("+item.getTitle()+")");
			out.endComment();
			out.println("public "+WizType.getWizAlterType(item.getType())+" get"+JSourceCodeWizardProcessor.getUpper(item.getName())+"()");
			out.println("{");

			if(item.getDelegate()==null)
			{
				String strGetter=WizType.getConvertPatternForType(item.getType(),WizType.getWizAlterType(item.getType()),item.getTitleFieldName());
				if(strGetter==null)
				{
					strGetter=item.getTitleFieldName();
				}
				out.println(1,"return "+strGetter+";");
			}
			else
			{
				JSourceCodeWizardField fieldDelegate=item.findDelegateField(wizard);
				if(fieldDelegate!=null)out.println(1,"return f_"+fieldDelegate.getChannel().getName()+".get"+JSourceCodeWizardProcessor.getUpper(fieldDelegate.getName())+"();");
			}

			out.println("}");
			out.println();

			if("boolean".equals(item.getType()))
			{
				out.beginComment();
				out.println(item.getName()+"("+item.getTitle()+") 偺恀婾<BR>");
				item.printDescriptions(wizard,out);
				out.println("");
				out.println("  @return boolean "+item.getTitleFieldName()+"("+item.getTitle()+")");
				out.endComment();
				out.println("public boolean is"+JSourceCodeWizardProcessor.getUpper(item.getName())+"()");
				out.println("{");
				out.println(1,"return get"+JSourceCodeWizardProcessor.getUpper(item.getName())+"();");
				out.println("}");
				out.println();
			}

			// name
			out.println("public static String get"+JSourceCodeWizardProcessor.getUpper(item.getName())+"Name()");
			out.println("{");
			out.println(1,"return \""+item.getName()+"\";");
			out.println("}");
			out.println();

			// title
			out.println("public static String get"+JSourceCodeWizardProcessor.getUpper(item.getName())+"Title()");
			out.println("{");
			out.println(1,"return \""+item.getTitle()+"\";");
			out.println("}");
			out.println();

			if(item.getDescription()!=null
			&& item.getDescription().length()>0)
			{
				// description
				out.println("public static String get"+JSourceCodeWizardProcessor.getUpper(item.getName())+"Description()");
				out.println("{");
				out.println(1,"return \""+item.getDescription()+"\";");
				out.println("}");
				out.println();
			}

			// type
			out.println("public String get"+JSourceCodeWizardProcessor.getUpper(item.getName())+"Type()");
			out.println("{");
			out.println(1,"return \""+item.getType()+"\";");
			out.println("}");
			out.println();

			if(item.getDefault()!=null
			&& item.getDefault().length()>0)
			{
				// default
				out.println("public static "+item.getType()+" get"+JSourceCodeWizardProcessor.getUpper(item.getName())+"Default()");
				out.println("{");
				out.println(1,"return "+item.getDefault()+";");
				out.println("}");
				out.println();
			}

			// length
			if(item.getLength()>0)
			{
				out.beginComment();
				out.println("length of "+item.getName()+"("+item.getTitle()+")<BR>");
				out.println("");
				out.println("  @return int length of "+item.getTitleFieldName()+"("+item.getTitle()+")");
				out.endComment();
				out.println("public static int get"+JSourceCodeWizardProcessor.getUpper(item.getName())+"Length()");
				out.println("{");
				out.println(1,"return "+item.getLength()+";");
				out.println("}");
				out.println();
			}

			// fractionLength
			if(item.getFractionLength()>0)
			{
				out.println("public static int get"+JSourceCodeWizardProcessor.getUpper(item.getName())+"FractionLength()");
				out.println("{");
				out.println(1,"return "+item.getFractionLength()+";");
				out.println("}");
				out.println();
			}
		}

		out.addIndent(-1);
	}

	public static final void writeCopy(
		JSourceCodeWizard wizard,JSourceCodeWizardChannel dataChannel,ArrayList vecItem,IndentWriter out)
		throws IOException
	{
		out.addIndent(1);
		for(int index=0;index<dataChannel.getFunction().getBind().size();index++)
		{
			String strCopyTarget=(String)dataChannel.getFunction().getBind().get(index);
			JSourceCodeWizard wizardTarget=findWizardFromXmlByClassName(wizard,dataChannel,strCopyTarget);

			out.beginComment();
			out.println("梌偊傜傟偨僆僽僕僃僋僩偐傜摨柤僼傿乕儖僪偺撪梕傪帺僆僽僕僃僋僩偵僐僺乕偟傑偡<BR>");
			out.println("");
			out.println("  @param "+JSourceCodeWizardProcessor.getMyClassName(wizardTarget,wizardTarget.getChannel())+" arg");
			out.endComment();
			out.println("public void parse("+JSourceCodeWizardProcessor.getMyClassName(wizardTarget,wizardTarget.getChannel())+" arg)");
			out.println("{");
			for(int indexSearchMyself=0;indexSearchMyself<vecItem.size();indexSearchMyself++)
			{
				JSourceCodeWizardField fieldMyself=(JSourceCodeWizardField)vecItem.get(indexSearchMyself);
				for(int indexSearchOther=0;indexSearchOther<wizardTarget.getField().size();indexSearchOther++)
				{
					JSourceCodeWizardField fieldOther=(JSourceCodeWizardField)wizardTarget.getField().get(indexSearchOther);
					if(fieldMyself.getName().equals(fieldOther.getName()))
					{
						String strGetter=WizType.getConvertPatternForType(WizType.getWizAlterType(fieldOther.getType()),WizType.getWizAlterType(fieldMyself.getType()),"arg.get"+JSourceCodeWizardProcessor.getUpper(fieldOther.getName())+"()");
						if(strGetter!=null)
						{
							out.println(1,"set"+JSourceCodeWizardProcessor.getUpper(fieldMyself.getName())+"("+strGetter+");");
						}
					}
				}
			}
			out.println("}");
			out.println(-1,"");
			out.beginComment();
			out.println("梌偊傜傟偨僆僽僕僃僋僩偵摨柤僼傿乕儖僪偺撪梕傪僐僺乕偟傑偡<BR>");
			out.println("");
			out.println("  @param "+JSourceCodeWizardProcessor.getMyClassName(wizardTarget,wizardTarget.getChannel())+" arg");
			out.endComment();
			out.println("public void serialize("+JSourceCodeWizardProcessor.getMyClassName(wizardTarget,wizardTarget.getChannel())+" arg)");
			out.println("{");
			for(int indexSearchMyself=0;indexSearchMyself<vecItem.size();indexSearchMyself++)
			{
				JSourceCodeWizardField fieldMyself=(JSourceCodeWizardField)vecItem.get(indexSearchMyself);
				for(int indexSearchOther=0;indexSearchOther<wizardTarget.getField().size();indexSearchOther++)
				{

⌨️ 快捷键说明

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