/** * @version $Id: ValidateUtil.java 1839 2014-04-16 02:33:51Z yukihiro-kinjyo $ * * 2011/10/07 15:21:26 * @author kousuke-morishima * * Copyright 2011-2014 TIDAコンソーシアム All Rights Reserved. */ package com.tida_okinawa.corona.internal.ui.util; import java.util.List; import org.eclipse.core.resources.IContainer; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.Assert; import org.eclipse.core.runtime.CoreException; import com.tida_okinawa.corona.io.IoActivator; import com.tida_okinawa.corona.io.model.ICoronaProject; import com.tida_okinawa.corona.io.model.dic.ICoronaDic; /** * @author kousuke-morishima */ public class ValidateUtil { /** * 重複なし。 */ public static final int DUPLICATE_NO = 0; /** * ワークスペース内に重複がある */ public static final int DUPLICATE_WS = 1; /** * データベース内に重複がある */ public static final int DUPLICATE_DB = 2 << 0; static final int MAX_LENGTH_PROJECT_NAME = 80; static final int MAX_LENGTH_DICTIONARY_NAME = 255; /** * Database内、およびWorkspace内に重複するプロジェクト名がなければtrue * Workspace内をチェックする * * @param name * @return bit-wise * @see #DUPLICATE_NO * @see #DUPLICATE_DB * @see #DUPLICATE_WS */ public static int isValidProjectName(String name) { Assert.isNotNull(name); int ret = DUPLICATE_NO; IProject[] projects = ResourcesPlugin.getWorkspace().getRoot().getProjects(); for (IProject project : projects) { if (name.equalsIgnoreCase(project.getName())) { ret |= DUPLICATE_WS; break; } } List<ICoronaProject> dbProjects = IoActivator.getService().getProjects(); for (ICoronaProject dbProject : dbProjects) { if (name.equalsIgnoreCase(dbProject.getName())) { ret |= DUPLICATE_DB; break; } } return ret; } /** * Database内、およびフォルダ内に重複する辞書名がなければtrue * Workspace内をチェックする * * @param parent * 辞書作成先。データベース内など、親がいない場合はnull * @param name * 検査する辞書名 * @return bit-wise * @see #DUPLICATE_NO * @see #DUPLICATE_DB * @see #DUPLICATE_WS */ public static int isValidDictionaryName(IContainer parent, String name) { int ret = DUPLICATE_NO; if (parent != null) { try { IResource[] members = parent.members(); for (IResource member : members) { if (member.getName().equalsIgnoreCase(name)) { ret |= DUPLICATE_WS; break; } } } catch (CoreException e) { e.printStackTrace(); } } List<ICoronaDic> dics = IoActivator.getService().getDictionarys(ICoronaDic.class); for (ICoronaDic dic : dics) { if (dic.getName().equalsIgnoreCase(name)) { ret |= DUPLICATE_DB; break; } } return ret; } }