From 9350fabddd8ffee9a4dad540e5dbeb4ebb8ed8b4 Mon Sep 17 00:00:00 2001 From: "kh5325.kim" Date: Mon, 13 May 2013 22:33:55 +0900 Subject: [PATCH] Refactored pacakge and added web types to TizenProjectType --- org.tizen.common/META-INF/MANIFEST.MF | 1 - .../{adapter => }/ITizenLaunchConfiguration.java | 2 +- .../ITizenNativeLaunchConfiguration.java | 2 +- .../common/{adapter => }/ITizenNativeProject.java | 14 +++---- .../tizen/common/{adapter => }/ITizenProject.java | 28 +++---------- .../ITizenWebLaunchConfiguration.java | 2 +- .../common/{adapter => }/ITizenWebProject.java | 7 ++-- .../src/org/tizen/common/TizenProjectType.java | 48 ++++++++++++++++++++-- .../src/org/tizen/common/util/ProjectUtil.java | 44 +++++++++++++------- 9 files changed, 92 insertions(+), 56 deletions(-) rename org.tizen.common/src/org/tizen/common/{adapter => }/ITizenLaunchConfiguration.java (97%) rename org.tizen.common/src/org/tizen/common/{adapter => }/ITizenNativeLaunchConfiguration.java (96%) rename org.tizen.common/src/org/tizen/common/{adapter => }/ITizenNativeProject.java (79%) rename org.tizen.common/src/org/tizen/common/{adapter => }/ITizenProject.java (72%) rename org.tizen.common/src/org/tizen/common/{adapter => }/ITizenWebLaunchConfiguration.java (96%) rename org.tizen.common/src/org/tizen/common/{adapter => }/ITizenWebProject.java (84%) diff --git a/org.tizen.common/META-INF/MANIFEST.MF b/org.tizen.common/META-INF/MANIFEST.MF index 96a73ee..7c5ff76 100755 --- a/org.tizen.common/META-INF/MANIFEST.MF +++ b/org.tizen.common/META-INF/MANIFEST.MF @@ -177,7 +177,6 @@ Export-Package: org.powermock.tests.utils.impl, org.slf4j, org.tizen.common, - org.tizen.common.adapter, org.tizen.common.classloader, org.tizen.common.config, org.tizen.common.config.loader, diff --git a/org.tizen.common/src/org/tizen/common/adapter/ITizenLaunchConfiguration.java b/org.tizen.common/src/org/tizen/common/ITizenLaunchConfiguration.java similarity index 97% rename from org.tizen.common/src/org/tizen/common/adapter/ITizenLaunchConfiguration.java rename to org.tizen.common/src/org/tizen/common/ITizenLaunchConfiguration.java index 3da32b9..0a36644 100644 --- a/org.tizen.common/src/org/tizen/common/adapter/ITizenLaunchConfiguration.java +++ b/org.tizen.common/src/org/tizen/common/ITizenLaunchConfiguration.java @@ -23,7 +23,7 @@ * - S-Core Co., Ltd * */ -package org.tizen.common.adapter; +package org.tizen.common; import org.eclipse.core.resources.IProject; /** diff --git a/org.tizen.common/src/org/tizen/common/adapter/ITizenNativeLaunchConfiguration.java b/org.tizen.common/src/org/tizen/common/ITizenNativeLaunchConfiguration.java similarity index 96% rename from org.tizen.common/src/org/tizen/common/adapter/ITizenNativeLaunchConfiguration.java rename to org.tizen.common/src/org/tizen/common/ITizenNativeLaunchConfiguration.java index b1dec87..00bd38a 100644 --- a/org.tizen.common/src/org/tizen/common/adapter/ITizenNativeLaunchConfiguration.java +++ b/org.tizen.common/src/org/tizen/common/ITizenNativeLaunchConfiguration.java @@ -23,7 +23,7 @@ * - S-Core Co., Ltd * */ -package org.tizen.common.adapter; +package org.tizen.common; public interface ITizenNativeLaunchConfiguration extends ITizenLaunchConfiguration{ diff --git a/org.tizen.common/src/org/tizen/common/adapter/ITizenNativeProject.java b/org.tizen.common/src/org/tizen/common/ITizenNativeProject.java similarity index 79% rename from org.tizen.common/src/org/tizen/common/adapter/ITizenNativeProject.java rename to org.tizen.common/src/org/tizen/common/ITizenNativeProject.java index f26bda3..9e2a015 100644 --- a/org.tizen.common/src/org/tizen/common/adapter/ITizenNativeProject.java +++ b/org.tizen.common/src/org/tizen/common/ITizenNativeProject.java @@ -23,25 +23,25 @@ * - S-Core Co., Ltd * */ -package org.tizen.common.adapter; +package org.tizen.common; import java.util.List; /** - * Interface about Tizen native project + * Interface about Tizen native project. * @author hyunsik * */ -public interface ITizenNativeProject extends ITizenProject{ +public interface ITizenNativeProject extends ITizenProject { /** - * Return build configuration list - * @return a List<String> + * Returns build configuration list. + * @return a build configuration list */ public List getBuildConfiguration(); + /** - * Return default build configuration name. + * Returns default build configuration name. * @return String */ public String getDefaultBuildConfiguration(); - } diff --git a/org.tizen.common/src/org/tizen/common/adapter/ITizenProject.java b/org.tizen.common/src/org/tizen/common/ITizenProject.java similarity index 72% rename from org.tizen.common/src/org/tizen/common/adapter/ITizenProject.java rename to org.tizen.common/src/org/tizen/common/ITizenProject.java index 8c72aef..09d2124 100644 --- a/org.tizen.common/src/org/tizen/common/adapter/ITizenProject.java +++ b/org.tizen.common/src/org/tizen/common/ITizenProject.java @@ -23,49 +23,33 @@ * - S-Core Co., Ltd * */ -package org.tizen.common.adapter; +package org.tizen.common; -import org.tizen.common.TizenProjectType; /** - * Interface to get information about Tizen project + * Interface to get information about Tizen project. * @author hyunsik * */ public interface ITizenProject { /** - * Returns true if project is for Tizen native. - * - * @return boolean - */ - - boolean isTizenNativeProject(); - /** - * Returns true if project is for Tizen web. - * - * @return boolean - */ - - boolean isTizenWebProject(); - /** * Returns the App ID from a config.xml. * - * @return an App ID string. If could not get a value, return null. + * @return an App ID string. If could not get a value, returns {@code null}. */ - public String getAppId(); /** * Returns the Package ID from a manifest.xml. * - * @return a Package ID string. If could not get a value, return null. + * @return a Package ID string. If could not get a value, returns {@code null}. */ public String getPackageId(); /** - * Returns the Tizen project type + * Returns the Tizen project type. * - * @return TizenProjectType + * @return {@link TizenProjectType} */ public TizenProjectType getTizenProjectType(); } diff --git a/org.tizen.common/src/org/tizen/common/adapter/ITizenWebLaunchConfiguration.java b/org.tizen.common/src/org/tizen/common/ITizenWebLaunchConfiguration.java similarity index 96% rename from org.tizen.common/src/org/tizen/common/adapter/ITizenWebLaunchConfiguration.java rename to org.tizen.common/src/org/tizen/common/ITizenWebLaunchConfiguration.java index b3b46f7..d2295cb 100644 --- a/org.tizen.common/src/org/tizen/common/adapter/ITizenWebLaunchConfiguration.java +++ b/org.tizen.common/src/org/tizen/common/ITizenWebLaunchConfiguration.java @@ -23,7 +23,7 @@ * - S-Core Co., Ltd * */ -package org.tizen.common.adapter; +package org.tizen.common; /** * Interface to get information from launch configuration for Tizen web project diff --git a/org.tizen.common/src/org/tizen/common/adapter/ITizenWebProject.java b/org.tizen.common/src/org/tizen/common/ITizenWebProject.java similarity index 84% rename from org.tizen.common/src/org/tizen/common/adapter/ITizenWebProject.java rename to org.tizen.common/src/org/tizen/common/ITizenWebProject.java index 5316ef9..42fd4a7 100644 --- a/org.tizen.common/src/org/tizen/common/adapter/ITizenWebProject.java +++ b/org.tizen.common/src/org/tizen/common/ITizenWebProject.java @@ -23,13 +23,12 @@ * - S-Core Co., Ltd * */ -package org.tizen.common.adapter; +package org.tizen.common; /** - * Interface to get information about Tizen web project + * Interface about Tizen web project. * @author hyunsik * */ -public abstract class ITizenWebProject implements ITizenProject{ - +public interface ITizenWebProject extends ITizenProject { } diff --git a/org.tizen.common/src/org/tizen/common/TizenProjectType.java b/org.tizen.common/src/org/tizen/common/TizenProjectType.java index b9c1b5a..6589fac 100644 --- a/org.tizen.common/src/org/tizen/common/TizenProjectType.java +++ b/org.tizen.common/src/org/tizen/common/TizenProjectType.java @@ -27,7 +27,7 @@ package org.tizen.common; /** - * Represents that TIZEN supports the given project types. + * Represents TIZEN project types. */ public enum TizenProjectType { TIZEN_C_UI_APPLICATION(true, false, false), @@ -38,7 +38,11 @@ public enum TizenProjectType { TIZEN_CPP_SERVICE_APPLICATION(false, false, true), TIZEN_CPP_SHAREDLIBRARY(false, false, false), TIZEN_CPP_STATICLIBRARY(false, false, false), - TIZEN_PLATFORM_PROJECT(false, false, false); + TIZEN_PLATFORM_PROJECT(false, false, false), + + TIZEN_WEB_APPLICATION(false, true, false), + TIZEN_WEB_UIFW_APPLICATION(false, true, false), + TIZEN_WEB_UIBUILDER_APPLICATION(false, true, false); private boolean isNeededIconValidation; private boolean isRootPrj; @@ -56,7 +60,7 @@ public enum TizenProjectType { /** * Returns whether this project can be root project of multi app project. - * @return {@code true} if this project can be root project. {@code false} if not. + * @return {@code true} if this project can be root project, otherwise {@code false} */ public boolean isRootProject() { return isRootPrj; @@ -64,9 +68,45 @@ public enum TizenProjectType { /** * Returns whether this project can be referenced project of multi app project. - * @return {@code true} if this project can be referenced project. {@code false} if not. + * @return {@code true} if this project can be referenced project, otherwise {@code false} */ public boolean isReferencedProject() { return isRefPrj; } + + /** + * Returns {@code true} if the project type is native. + * @return {@code true} if this project type is native, otherwise {@code false} + */ + public boolean isNativeProject() { + switch (this) { + case TIZEN_C_UI_APPLICATION : + case TIZEN_C_SERVICE_APPLICATION : + case TIZEN_C_SHAREDLIBRARY : + case TIZEN_C_STATICLIBRARY : + case TIZEN_CPP_UI_APPLICATION : + case TIZEN_CPP_SERVICE_APPLICATION : + case TIZEN_CPP_SHAREDLIBRARY : + case TIZEN_CPP_STATICLIBRARY : + case TIZEN_PLATFORM_PROJECT : + return true; + default : + return false; + } + } + + /** + * Returns {@code true} if the project type is web. + * @return {@code true} if this project type is web, otherwise {@code false} + */ + public boolean isWebProject() { + switch (this) { + case TIZEN_WEB_APPLICATION : + case TIZEN_WEB_UIFW_APPLICATION : + case TIZEN_WEB_UIBUILDER_APPLICATION : + return true; + default : + return false; + } + } } diff --git a/org.tizen.common/src/org/tizen/common/util/ProjectUtil.java b/org.tizen.common/src/org/tizen/common/util/ProjectUtil.java index 64bf5bd..786aa08 100644 --- a/org.tizen.common/src/org/tizen/common/util/ProjectUtil.java +++ b/org.tizen.common/src/org/tizen/common/util/ProjectUtil.java @@ -37,9 +37,9 @@ import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.Platform; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.tizen.common.adapter.ITizenNativeProject; -import org.tizen.common.adapter.ITizenWebProject; -import org.tizen.common.adapter.ITizenProject; +import org.tizen.common.ITizenNativeProject; +import org.tizen.common.ITizenProject; +import org.tizen.common.ITizenWebProject; /** * ProjectUtil. @@ -208,7 +208,7 @@ public class ProjectUtil { /** * Checks whether target project is located in default location or not. * @param descriptionLocation .cproject location of target project. - * @return true if it is located in default location. False if not. + * @return {@code true} if it is located in default location, otherwise {@code false} */ public static boolean isDefaultProjectLocation(IPath descriptionLocation) { if(descriptionLocation.segmentCount() < 2) { @@ -216,31 +216,45 @@ public class ProjectUtil { } return descriptionLocation.removeLastSegments(2).toFile().equals(Platform.getLocation().toFile()); } - + + /** + * Returns {@link ITizenProject} object for the project. + * @param project + * @return {@link ITizenProject} + */ + public static ITizenProject getTizenProject(IProject project, Class adapter) { + if (project == null) + throw new IllegalArgumentException("project can not be null"); + Object obj = project.getAdapter(adapter); + if (obj == null || !(obj instanceof ITizenProject)) + throw new IllegalArgumentException("project can not be adapted (obj - " + obj + ", adapter - " + adapter + ")"); + return (ITizenProject) obj; + } + /** - * Check whether project is for tizen native or not. + * Checks whether project is for Tizen native or not. * @param project - * @return true if it is tizen native project. + * @return {@code true} if it is Tizen native project */ public static boolean isTizenNativeProject(IProject project) { - ITizenProject adapter = (ITizenProject) project.getAdapter(ITizenNativeProject.class); - return adapter.isTizenNativeProject(); + ITizenProject adapter = getTizenProject(project, ITizenNativeProject.class); + return (adapter.getTizenProjectType() == null) ? false : adapter.getTizenProjectType().isNativeProject(); } /** - * Check whether project is for tizen web or not. + * Checks whether project is for Tizen web or not. * @param project - * @return true if it is tizen web project. + * @return {@code true} if it is Tizen web project */ public static boolean isTizenWebProject(IProject project) { - ITizenProject adapter = (ITizenProject) project.getAdapter(ITizenWebProject.class); - return adapter.isTizenWebProject(); + ITizenProject adapter = getTizenProject(project, ITizenWebProject.class); + return (adapter.getTizenProjectType() == null) ? false : adapter.getTizenProjectType().isWebProject(); } /** - * Check whether project is for tizen or not. + * Checks whether project is for Tizen or not. * @param project - * @return true if it is tizen project. + * @return {@code true} if it is Tizen project */ public static boolean isTizenProject(IProject project) { return (isTizenNativeProject(project) || isTizenWebProject(project)); -- 2.7.4