1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-29 19:45:01 +02:00

Apply patch for 215823 for Mark Espiritu, and fix generics warnings in template engine

This commit is contained in:
Andrew Ferguson 2008-01-15 11:40:08 +00:00
parent c18ff521d9
commit 100ce28bcd
16 changed files with 264 additions and 284 deletions

View file

@ -1,5 +1,5 @@
/*******************************************************************************
* Copyright (c) 2007 Symbian Software Limited and others.
* Copyright (c) 2007, 2008 Symbian Software Limited and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@ -31,7 +31,7 @@ public class AllTemplateEngineTests extends TestSuite {
* Since the TemplateEngine consists of UI(Wizard).
* A TestWizard is created to which the dynamically generated
* UIPages are added. The Wizard is launched from here.
* The TestCases created to test the TemplateEngine is initialized here.
* The TestCases created to test the TemplateEngine is initialised here.
* @return
*
* @since 4.0
@ -45,6 +45,7 @@ public class AllTemplateEngineTests extends TestSuite {
suite.addTestSuite(TestValueStore.class);
suite.addTestSuite(TestSharedDefaults.class);
suite.addTestSuite(TestProcesses.class);
suite.addTestSuite(TestTemplateEngineBugs.class);
//$JUnit-END$
return suite;

View file

@ -0,0 +1,38 @@
/*******************************************************************************
* Copyright (c) 2007 Symbian Software Limited and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Andrew Ferguson (Symbian) - Initial Implementation
*******************************************************************************/
package org.eclipse.cdt.core.tests.templateengine;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
import org.eclipse.cdt.core.templateengine.process.ProcessHelper;
import org.eclipse.cdt.core.testplugin.util.BaseTestCase;
public class TestTemplateEngineBugs extends BaseTestCase {
public void testBug215283() {
assertEquals(set("a"), ProcessHelper.getReplaceKeys("$(a)"));
assertEquals(set("a","b"), ProcessHelper.getReplaceKeys("$(a)$(b)"));
assertEquals(set("a","b","cc","ddd"), ProcessHelper.getReplaceKeys("$(a)$(b)$(cc)$(ddd)"));
assertEquals(set("aaa","b","c","dd"), ProcessHelper.getReplaceKeys("$(aaa)$(b)$(c)$(dd)"));
assertEquals(set("a"), ProcessHelper.getReplaceKeys("($(a))"));
assertEquals(set("a","b"), ProcessHelper.getReplaceKeys("$(b)$(a)"));
assertEquals(set("a"), ProcessHelper.getReplaceKeys(" \n$(a)"));
assertEquals(set("a"), ProcessHelper.getReplaceKeys("$(a) "));
}
private Set<String> set(String ... s) {
HashSet<String> result= new HashSet<String>();
result.addAll(Arrays.asList(s));
return result;
}
}

View file

@ -1,5 +1,5 @@
/*******************************************************************************
* Copyright (c) 2007 Symbian Software Limited and others.
* Copyright (c) 2007, 2008 Symbian Software Limited and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@ -14,7 +14,6 @@ import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
@ -35,8 +34,7 @@ import org.w3c.dom.Node;
/**
* Processes the shared default values. Updates and Persists new key - value (default) pair
*/
public class SharedDefaults extends HashMap/*<String, String>*/ {
public class SharedDefaults extends HashMap<String, String> {
private static final long serialVersionUID = 0000000000L;
public Document document;
@ -46,9 +44,9 @@ public class SharedDefaults extends HashMap/*<String, String>*/ {
/**
* HashMap's for persistence
*/
private HashMap/*<String, String>*/ sharedDefaultsMap;
private HashMap/*<String, String>*/ persistDataMap;
private HashMap/*<String, String>*/ tableDataMap;
private HashMap<String, String> sharedDefaultsMap;
private HashMap<String, String> persistDataMap;
private HashMap<String, String> tableDataMap;
/**
* Two XML files here supports to provide consistent writing of data into
@ -96,9 +94,9 @@ public class SharedDefaults extends HashMap/*<String, String>*/ {
*/
public SharedDefaults() {
sharedDefaultsMap = new HashMap/*<String, String>*/();
persistDataMap = new HashMap/*<String, String>*/();
tableDataMap = new HashMap/*<String, String>*/();
sharedDefaultsMap = new HashMap<String, String>();
persistDataMap = new HashMap<String, String>();
tableDataMap = new HashMap<String, String>();
// The conditional controls here is provided to have consistent
// data storage in the file during System crash or
@ -129,15 +127,15 @@ public class SharedDefaults extends HashMap/*<String, String>*/ {
if (length == 0) {
parsedXML = createDefaultXMLFormat(parsedXML);
}
document = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(parsedXML.toURL().openStream());
document = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(parsedXML.toURI().toURL().openStream());
} catch (Exception exp) {
TemplateEngineUtil.log(exp);
}
List/*<Element>*/ sharedElementList = TemplateEngine.getChildrenOfElement(document.getDocumentElement());
List<Element> sharedElementList = TemplateEngine.getChildrenOfElement(document.getDocumentElement());
int listSize = sharedElementList.size();
for (int i = 0; i < listSize; i++) {
Element xmlElement = (Element) sharedElementList.get(i);
Element xmlElement = sharedElementList.get(i);
key = xmlElement.getAttribute(TemplateEngineHelper.ID);
value = xmlElement.getAttribute(TemplateEngineHelper.VALUE);
if (key != null && !key.trim().equals("")) { //$NON-NLS-1$
@ -152,7 +150,7 @@ public class SharedDefaults extends HashMap/*<String, String>*/ {
* @param sharedMap
*/
public void updateShareDefaultsMap(Map/*<String, String>*/ sharedMap) {
public void updateShareDefaultsMap(Map<String, String> sharedMap) {
sharedDefaultsMap.putAll(sharedMap);
persistSharedValueMap();
}
@ -174,7 +172,7 @@ public class SharedDefaults extends HashMap/*<String, String>*/ {
* @return HashMap
*/
public Map/*<String, String>*/ getSharedDefaultsMap() {
public Map<String, String> getSharedDefaultsMap() {
return sharedDefaultsMap;
}
@ -198,20 +196,19 @@ public class SharedDefaults extends HashMap/*<String, String>*/ {
* @param updateName
* @param updateValue
*/
public void updateToBackEndStorage(String updateName, String updateValue) {
try {
document = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(parsedXML.toURL().openStream());
document = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(parsedXML.toURI().toURL().openStream());
} catch (Exception exp) {
TemplateEngineUtil.log(exp);
}
persistDataMap.putAll(sharedDefaultsMap);
List/*<Element>*/ sharedElementList = TemplateEngine.getChildrenOfElement(document.getDocumentElement());
List<Element> sharedElementList = TemplateEngine.getChildrenOfElement(document.getDocumentElement());
int elementListSize = sharedElementList.size();
for (int i = 0; i < elementListSize; i++) {
Element xmlElement = (Element) sharedElementList.get(i);
Element xmlElement = sharedElementList.get(i);
String name = xmlElement.getAttribute(TemplateEngineHelper.ID);
if (updateName.equals(name)) {
@ -228,18 +225,17 @@ public class SharedDefaults extends HashMap/*<String, String>*/ {
* @param deleteName
*/
public void deleteBackEndStorage(String[] deleteName) {
try {
document = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(parsedXML.toURL().openStream());
document = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(parsedXML.toURI().toURL().openStream());
} catch (Exception exp) {
TemplateEngineUtil.log(exp);
}
List/*<Element>*/ sharedElementList = TemplateEngine.getChildrenOfElement(document.getDocumentElement());
List<Element> sharedElementList = TemplateEngine.getChildrenOfElement(document.getDocumentElement());
int elementListSize = sharedElementList.size();
for (int i = 0; i < elementListSize; i++) {
Element xmlElement = (Element) sharedElementList.get(i);
Element xmlElement = sharedElementList.get(i);
String name = xmlElement.getAttribute(TemplateEngineHelper.ID);
for (int k = 0; k < deleteName.length; k++) {
@ -312,11 +308,10 @@ public class SharedDefaults extends HashMap/*<String, String>*/ {
}
Node rootElement = d.appendChild(d.createElement("SharedRoot")); //$NON-NLS-1$
for(Iterator i = sharedDefaultsMap.keySet().iterator(); i.hasNext(); ) {
String key = (String) i.next();
for(String key : sharedDefaultsMap.keySet()) {
Element element = (Element) rootElement.appendChild(d.createElement("SharedProperty")); //$NON-NLS-1$
element.setAttribute(TemplateEngineHelper.ID, key);
element.setAttribute(TemplateEngineHelper.VALUE, (String) sharedDefaultsMap.get(key));
element.setAttribute(TemplateEngineHelper.VALUE, sharedDefaultsMap.get(key));
}
DOMSource domSource = new DOMSource(d);

View file

@ -1,5 +1,5 @@
/*******************************************************************************
* Copyright (c) 2007 Symbian Software Limited and others.
* Copyright (c) 2007, 2008 Symbian Software Limited and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@ -13,7 +13,6 @@ package org.eclipse.cdt.core.templateengine;
import java.io.IOException;
import java.net.URL;
import java.text.MessageFormat;
import java.util.Collection;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Iterator;
@ -45,18 +44,18 @@ public class TemplateCore {
private static final String ID = "id"; //$NON-NLS-1$
private static final String TYPE = "type"; //$NON-NLS-1$
private static Map/*<TemplateInfo, Template>*/ templateCache = new HashMap/*<TemplateInfo, Template>*/();
private static Map<TemplateInfo, TemplateCore> templateCache = new HashMap<TemplateInfo, TemplateCore>();
public static final Comparator/*<Template>*/ TEMPLATE_ID_CASE_INSENSITIVE_COMPARATOR = new Comparator/*<Template>*/() {
public int compare(Object/*Template*/ t1, Object/*Template*/ t2) {
return String.CASE_INSENSITIVE_ORDER.compare(((TemplateCore)t1).getTemplateId(), ((TemplateCore)t2).getTemplateId());
public static final Comparator<TemplateCore> TEMPLATE_ID_CASE_INSENSITIVE_COMPARATOR = new Comparator<TemplateCore>() {
public int compare(TemplateCore t1, TemplateCore t2) {
return String.CASE_INSENSITIVE_ORDER.compare(t1.getTemplateId(), t2.getTemplateId());
}
};
private TemplateDescriptor templateDescriptor;
private Map/*<String, String>*/ valueStore;
private Map<String, String> valueStore;
private TemplateInfo templateInfo;
private Set/*<String>*/ allMacrosInProcesses;
private Set<String> allMacrosInProcesses;
private TemplateProcessHandler processHandler;
private String description;
private String label;
@ -80,7 +79,7 @@ public class TemplateCore {
if(descriptorURL==null)
throw new TemplateInitializationException("Unable to load project template. Location URL is null for "+templateInfo.getTemplateId()); //$NON-NLS-1$
templateDescriptor = new TemplateDescriptor(descriptorURL, templateInfo.getPluginId());
valueStore = new ValueStore/*<String, String>*/(this);
valueStore = new ValueStore<String>(this);
valueStore.putAll(templateDescriptor.getTemplateDefaults(templateDescriptor.getRootElement()));
valueStore.putAll(TemplateEngine.getSharedDefaults());
valueStore.put("projectType", templateInfo.getProjectType()); //$NON-NLS-1$
@ -95,9 +94,9 @@ public class TemplateCore {
* Returns All Missing Macros In Processes.
* @return Set
*/
public Set/*<String>*/ getAllMissingMacrosInProcesses() {
Set/*<String>*/ set = new TreeSet/*<String>*/(allMacrosInProcesses);
for (Iterator iter = set.iterator(); iter.hasNext();) {
public Set<String> getAllMissingMacrosInProcesses() {
Set<String> set = new TreeSet<String>(allMacrosInProcesses);
for (Iterator<String> iter = set.iterator(); iter.hasNext();) {
if (valueStore.get(iter.next()) != null) {
iter.remove();
}
@ -109,7 +108,7 @@ public class TemplateCore {
* return the ValueStore maintained by this Template.
* @return ValueStore.
*/
public Map/*<String, String>*/ getValueStore() {
public Map<String, String> getValueStore() {
return valueStore;
}
@ -119,7 +118,7 @@ public class TemplateCore {
*
* @return Vector of IDs.
*/
public List/*<String>*/ getPersistTrueIDs() {
public List<String> getPersistTrueIDs() {
return templateDescriptor.getPersistTrueIDs();
}
@ -229,7 +228,7 @@ public class TemplateCore {
*/
public static TemplateCore getTemplate(TemplateInfo templateInfo) throws TemplateInitializationException {
synchronized (templateCache) {
TemplateCore template = (TemplateCore) templateCache.get(templateInfo);
TemplateCore template = templateCache.get(templateInfo);
if (template == null) {
template = new TemplateCore(templateInfo);
templateCache.put(templateInfo, template);
@ -238,7 +237,7 @@ public class TemplateCore {
}
}
private static class ValueStore/*<K, V>*/ extends HashMap/*<K, V>*/ {
private static class ValueStore<K> extends HashMap<K,String> {
private static final long serialVersionUID = -4523467333437879406L;
private TemplateCore template;
@ -246,26 +245,24 @@ public class TemplateCore {
this.template = template;
}
public Object/*V*/ put(Object/*K*/ key, Object/*V*/ value) {
value = TemplateEngineHelper.externalizeTemplateString(template.getTemplateInfo(), (String)value);
Object/*V*/ v = super.put(key, value);
public String put(K key, String value) {
value = TemplateEngineHelper.externalizeTemplateString(template.getTemplateInfo(), value);
String v = super.put(key, value);
template.setDirty();
return v;
}
public void putAll(Map/*<? extends K, ? extends V>*/ map) {
Collection keys = map.keySet();
for (Iterator iterator = keys.iterator(); iterator.hasNext();) {
Object key = iterator.next();
Object value = map.get(key);
value = TemplateEngineHelper.externalizeTemplateString(template.getTemplateInfo(), (String) value);
public void putAll(Map<? extends K, ? extends String> map) {
for(K key : map.keySet()) {
String value = map.get(key);
value = TemplateEngineHelper.externalizeTemplateString(template.getTemplateInfo(), value);
super.put(key, value);
}
template.setDirty();
}
public Object/*V*/ remove(Object key) {
Object/*V*/ v = super.remove(key);
public String remove(Object key) {
String v = super.remove(key);
template.setDirty();
return v;
}

View file

@ -1,5 +1,5 @@
/*******************************************************************************
* Copyright (c) 2007 Symbian Software Limited and others.
* Copyright (c) 2007, 2008 Symbian Software Limited and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@ -41,7 +41,7 @@ public class TemplateDescriptor {
private Document document;
private Element rootElement;
private List/*<String>*/ persistVector;
private List<String> persistVector;
private String pluginId;
/**
@ -61,7 +61,7 @@ public class TemplateDescriptor {
throw new TemplateInitializationException(msg, se);
}
this.rootElement = document.getDocumentElement();
this.persistVector = new ArrayList/*<String>*/();
this.persistVector = new ArrayList<String>();
this.pluginId = pluginId;
}
@ -71,12 +71,12 @@ public class TemplateDescriptor {
*
* @return default values with keys
*/
public Map/*<String, String>*/ getTemplateDefaults(Element rootElement) {
Map/*<String, String>*/ templateDefaults = new HashMap/*<String, String>*/();
public Map<String, String> getTemplateDefaults(Element rootElement) {
Map<String, String> templateDefaults = new HashMap<String, String>();
Element propertyGroupElement;
List/*<Element>*/ children = TemplateEngine.getChildrenOfElement(rootElement);
List<Element> children = TemplateEngine.getChildrenOfElement(rootElement);
for (int i = 0, l = children.size(); i < l; i++) {
propertyGroupElement = (Element) children.get(i);
propertyGroupElement = children.get(i);
if (isNestedElement(propertyGroupElement)) {
templateDefaults = getTemplateDefaults(propertyGroupElement);
}
@ -93,12 +93,12 @@ public class TemplateDescriptor {
private boolean isNestedElement(Element element){
boolean result=false;
if (element!=null){
List/*<Element>*/ children = TemplateEngine.getChildrenOfElement(element);
List<Element> children = TemplateEngine.getChildrenOfElement(element);
String elementName = element.getNodeName();
Element testElement;
String testElementName = null;
if (children.size() > 0){
testElement = (Element) children.get(0);
testElement = children.get(0);
testElementName=testElement.getNodeName();
}
if(elementName.equals(testElementName))
@ -116,14 +116,14 @@ public class TemplateDescriptor {
* root element of type JDOM Element
* @return list of property-group elements
*/
public List getPropertyGroupList() {
List resultList = null;
List/*<Element>*/ list = new ArrayList/*<Element>*/();
public List<Element> getPropertyGroupList() {
List<Element> resultList = null;
List<Element> list = new ArrayList<Element>();
resultList = list;
if (rootElement != null) {
List/*<Element>*/ tempList = TemplateEngine.getChildrenOfElement(rootElement);
List<Element> tempList = TemplateEngine.getChildrenOfElement(rootElement);
for (int i = 0, l = tempList.size(); i < l; i++) {
Element nextPropertyGroup = (Element) tempList.get(i);
Element nextPropertyGroup = tempList.get(i);
String nextPGName = nextPropertyGroup.getNodeName();
if (nextPGName.equalsIgnoreCase(PROPERTY_GROUP)) {
list.add(nextPropertyGroup);
@ -151,9 +151,9 @@ public class TemplateDescriptor {
return rootElement;
} else {
String nextPGElementName = null;
List/*<Element>*/ propertyGroupList = TemplateEngine.getChildrenOfElement(rootElement);
List<Element> propertyGroupList = TemplateEngine.getChildrenOfElement(rootElement);
for (int i = 0, l = propertyGroupList.size(); i < l; i++) {
Element nextPGElement = (Element) propertyGroupList.get(i);
Element nextPGElement = propertyGroupList.get(i);
if (isNestedElement(nextPGElement))
nextPGElementName = nextPGElement.getNodeName();
if (nextPGElementName.equalsIgnoreCase(PROPERTY_GROUP) && isNestedElement(nextPGElement)) {
@ -173,10 +173,10 @@ public class TemplateDescriptor {
* @param propertyGroupElement
* traverse the complex property-group element
*/
private void propertyElements(Map/*<String, String>*/ defaults, Element propertyGroupElement) {
List/*<Element>*/ children = TemplateEngine.getChildrenOfElement(propertyGroupElement);
private void propertyElements(Map<String, String> defaults, Element propertyGroupElement) {
List<Element> children = TemplateEngine.getChildrenOfElement(propertyGroupElement);
for (int i = 0, l = children.size(); i < l; i++) {
Element propertyElement = (Element) children.get(i);
Element propertyElement = children.get(i);
String key = propertyElement.getAttribute(ID);
String value = propertyElement.getAttribute(DEFAULT);
if (key != null && !key.equals("")) { //$NON-NLS-1$
@ -202,7 +202,7 @@ public class TemplateDescriptor {
*
* @return Vector.
*/
public List/*<String>*/ getPersistTrueIDs() {
public List<String> getPersistTrueIDs() {
return persistVector;
}

View file

@ -1,5 +1,5 @@
/*******************************************************************************
* Copyright (c) 2007 Symbian Software Limited and others.
* Copyright (c) 2007, 2008 Symbian Software Limited and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@ -15,7 +15,6 @@ import java.net.URL;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
import java.util.List;
@ -35,7 +34,7 @@ import org.w3c.dom.NodeList;
/**
* TemplateEngine is implemented as a Singleton. TemplateEngine is responsible for
* creating SharedDefaults and initializing the SharedDefaults. Template instances
* creating SharedDefaults and initialising the SharedDefaults. Template instances
* are obtained from TemplateEngine.
*
* @since 4.0
@ -53,13 +52,13 @@ public class TemplateEngine {
/**
* This is a Map <WizardID, TemplateInfo>.
*/
private Map/*<String, List<TemplateInfo>>*/ templateInfoMap;
private Map<String, List<TemplateInfo>> templateInfoMap;
/**
* TemplateEngine constructor, create and initialise SharedDefaults.
*/
private TemplateEngine() {
templateInfoMap = new LinkedHashMap/*<String, List<TemplateInfo>>*/();
templateInfoMap = new LinkedHashMap<String, List<TemplateInfo>>();
initializeTemplateInfoMap();
}
@ -68,7 +67,7 @@ public class TemplateEngine {
*/
public TemplateCore[] getTemplates() {
TemplateInfo[] templateInfoArray = getTemplateInfos();
List/*<TemplateCore>*/ tcores = new ArrayList/*<TemplateCore>*/();
List<TemplateCore> tcores = new ArrayList<TemplateCore>();
for (int i=0; i<templateInfoArray.length; i++) {
TemplateInfo info = templateInfoArray[i];
try {
@ -77,7 +76,7 @@ public class TemplateEngine {
CCorePlugin.log(CCorePlugin.createStatus(e.getMessage(), e));
}
}
return (TemplateCore[]) tcores.toArray(new TemplateCore[tcores.size()]);
return tcores.toArray(new TemplateCore[tcores.size()]);
}
/**
@ -120,7 +119,7 @@ public class TemplateEngine {
*/
public TemplateCore[] getTemplates(String projectType, String toolChain, String usageFilter) {
TemplateInfo[] templateInfoArray = getTemplateInfos(projectType, toolChain, usageFilter);
List/*<Template>*/ templatesList = new ArrayList/*<Template>*/();
List<TemplateCore> templatesList = new ArrayList<TemplateCore>();
for (int i=0; i<templateInfoArray.length; i++) {
TemplateInfo info = templateInfoArray[i];
try {
@ -129,7 +128,7 @@ public class TemplateEngine {
CCorePlugin.log(tie);
}
}
return (TemplateCore[]) templatesList.toArray(new TemplateCore[templatesList.size()]);
return templatesList.toArray(new TemplateCore[templatesList.size()]);
}
public TemplateCore[] getTemplates(String projectType, String toolChain) {
@ -157,7 +156,7 @@ public class TemplateEngine {
*
* @return
*/
public static Map/*<String, String>*/ getSharedDefaults() {
public static Map<String, String> getSharedDefaults() {
return SharedDefaults.getInstance().getSharedDefaultsMap();
}
@ -173,11 +172,9 @@ public class TemplateEngine {
* @param aSharedValue
*/
public void updateSharedDefaults(TemplateCore template) {
Map/*<String, String>*/ tobePersisted = new HashMap/*<String, String>*/();
Map/*<String, String>*/ valueStore = template.getValueStore();
for (Iterator i = template.getPersistTrueIDs().iterator(); i.hasNext();) {
String key = (String) i.next();
Map<String, String> tobePersisted = new HashMap<String, String>();
Map<String, String> valueStore = template.getValueStore();
for(String key : template.getPersistTrueIDs()) {
tobePersisted.put(key, valueStore.get(key));
}
SharedDefaults.getInstance().updateShareDefaultsMap(tobePersisted);
@ -236,7 +233,7 @@ public class TemplateEngine {
}
IConfigurationElement[] toolChainConfigs = config.getChildren(TemplateEngineHelper.TOOL_CHAIN);
Set toolChainIdSet = new LinkedHashSet();
Set<String> toolChainIdSet = new LinkedHashSet<String>();
for (int k=0; k < toolChainConfigs.length; k++) {
toolChainIdSet.add(toolChainConfigs[k].getAttribute(TemplateEngineHelper.ID));
}
@ -245,9 +242,9 @@ public class TemplateEngine {
pluginId, toolChainIdSet,
extraPagesProvider, isCategory);
if (!templateInfoMap.containsKey(projectType)) {
templateInfoMap.put(projectType, new ArrayList/*<TemplateInfo>*/());
templateInfoMap.put(projectType, new ArrayList<TemplateInfo>());
}
((List/*<TemplateInfo>*/)templateInfoMap.get(projectType)).add(templateInfo);
(templateInfoMap.get(projectType)).add(templateInfo);
}
}
// Check for tool Chains added to the templates outside template info definition
@ -267,7 +264,7 @@ public class TemplateEngine {
templateId = config.getAttribute(TemplateEngineHelper.ID);
IConfigurationElement[] toolChainConfigs = config.getChildren(TemplateEngineHelper.TOOL_CHAIN);
Set toolChainIdSet = new LinkedHashSet();
Set<String> toolChainIdSet = new LinkedHashSet<String>();
for (int k=0; k < toolChainConfigs.length; k++) {
toolChainIdSet.add(toolChainConfigs[k].getAttribute(TemplateEngineHelper.ID));
}
@ -295,12 +292,11 @@ public class TemplateEngine {
* @return an array of TemplateInfo objects (never null)
*/
public TemplateInfo[] getTemplateInfos(String projectType, String toolChain, String usageFilter) {
List/*<TemplateInfo>*/ templateInfoList = (List/*<TemplateInfo*/) templateInfoMap.get(projectType.trim());
List/*<TemplateInfo>*/ matchedTemplateInfoList = new ArrayList/*<TemplateInfo>*/();
List<TemplateInfo> templateInfoList = templateInfoMap.get(projectType.trim());
List<TemplateInfo> matchedTemplateInfoList = new ArrayList<TemplateInfo>();
if (templateInfoList != null) {
for (Iterator i = templateInfoList.iterator(); i.hasNext(); ) {
TemplateInfo templateInfo = (TemplateInfo) i.next();
for(TemplateInfo templateInfo : templateInfoList) {
String filterPattern = templateInfo.getFilterPattern();
String[] toolChains = templateInfo.getToolChainIds();
@ -324,7 +320,7 @@ public class TemplateEngine {
}
}
}
return (TemplateInfo[]) matchedTemplateInfoList.toArray(new TemplateInfo[matchedTemplateInfoList.size()]);
return matchedTemplateInfoList.toArray(new TemplateInfo[matchedTemplateInfoList.size()]);
}
public TemplateInfo[] getTemplateInfos(String projectType, String toolChain) {
@ -340,12 +336,11 @@ public class TemplateEngine {
* @return
*/
public TemplateInfo[] getTemplateInfos() {
List/*<TemplateInfo>*/ infoList = new ArrayList/*<TemplateInfo>*/();
for (Iterator i = templateInfoMap.values().iterator(); i.hasNext();) {
infoList.addAll((List/*<TemplateInfo>*/)i.next());
List<TemplateInfo> infoList = new ArrayList<TemplateInfo>();
for(List<TemplateInfo> infos : templateInfoMap.values()) {
infoList.addAll(infos);
}
return (TemplateInfo[]) infoList.toArray(new TemplateInfo[infoList.size()]);
return infoList.toArray(new TemplateInfo[infoList.size()]);
}
@ -354,7 +349,7 @@ public class TemplateEngine {
*
* @return
*/
public Map/*<String, List<TemplateInfo>>*/ getTemplateInfoMap() {
public Map<String, List<TemplateInfo>> getTemplateInfoMap() {
return templateInfoMap;
}
@ -375,13 +370,13 @@ public class TemplateEngine {
*
* @since 4.0
*/
public static List/*<Element>*/ getChildrenOfElement(Element element) {
List/*<Element>*/ list = new ArrayList/*<Element>*/();
public static List<Element> getChildrenOfElement(Element element) {
List<Element> list = new ArrayList<Element>();
NodeList children = element.getChildNodes();
for (int i = 0, l = children.getLength(); i < l; i++) {
Node child = children.item(i);
if (child.getNodeType() == Node.ELEMENT_NODE) {
list.add(child);
list.add((Element) child);
}
}
return list;
@ -396,13 +391,13 @@ public class TemplateEngine {
*
* @since 4.0
*/
public static List/*<Element>*/ getChildrenOfElementByTag(Element element, String tag) {
List/*<Element>*/ list = new ArrayList/*<Element>*/();
public static List<Element> getChildrenOfElementByTag(Element element, String tag) {
List<Element> list = new ArrayList<Element>();
NodeList children = element.getChildNodes();
for (int i = 0, l = children.getLength(); i < l; i++) {
Node child = children.item(i);
if (child.getNodeType() == Node.ELEMENT_NODE && child.getNodeName().equals(tag)) {
list.add(child);
list.add((Element) child);
}
}
return list;

View file

@ -1,5 +1,5 @@
/*******************************************************************************
* Copyright (c) 2007 Symbian Software Limited and others.
* Copyright (c) 2007, 2008 Symbian Software Limited and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@ -11,7 +11,6 @@
package org.eclipse.cdt.core.templateengine;
import java.lang.reflect.InvocationTargetException;
import java.util.Iterator;
import java.util.List;
import org.eclipse.cdt.core.CCorePlugin;
@ -22,7 +21,6 @@ import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
public class TemplateEngineUtil {
public static void log(Throwable t) {
if (t == null) {
return;
@ -34,10 +32,9 @@ public class TemplateEngineUtil {
ResourcesPlugin.getPlugin().getLog().log(((CoreException) t).getStatus());
} if (t instanceof ProcessFailureException) {
do {
List/*<IStatus>*/ statuses = ((ProcessFailureException) t).getStatuses();
List<IStatus> statuses = ((ProcessFailureException) t).getStatuses();
if (statuses != null) {
for(Iterator i = statuses.iterator(); i.hasNext(); ) {
IStatus status = (IStatus) i.next();
for(IStatus status : statuses) {
ResourcesPlugin.getPlugin().getLog().log(status);
}
}
@ -47,5 +44,4 @@ public class TemplateEngineUtil {
ResourcesPlugin.getPlugin().getLog().log(new Status(IStatus.ERROR, CCorePlugin.PLUGIN_ID, IStatus.OK, t.getMessage() == null ? t.toString() : t.getMessage() , t));
}
}
}

View file

@ -1,5 +1,5 @@
/*******************************************************************************
* Copyright (c) 2007 Symbian Software Limited and others.
* Copyright (c) 2007, 2008 Symbian Software Limited and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@ -21,12 +21,12 @@ public class TemplateInfo {
private String filterPattern;
private String templatePath;
private String pluginId;
private Set toolChainIdSet;
private Object pagesProvider; /* IPagesAfterTemplateSelectionProvider */
private Set<String> toolChainIdSet;
private Object pagesProvider; /*IPagesAfterTemplateSelectionProvider*/
private boolean isCategory;
private String icon;
private String templateId;
private List configs;
private List<?> configs; /*This seems to be used for storing build-system specific configurations*/
/**
*
@ -40,7 +40,7 @@ public class TemplateInfo {
* @param isCategory
*/
public TemplateInfo(String templateId, String projectTypeId, String filterPattern, String templatePath,
String pluginId, Set toolChainIdSet,
String pluginId, Set<String> toolChainIdSet,
Object extraPagesProvider, boolean isCategory) {
this.templateId = templateId;
this.filterPattern = filterPattern;
@ -99,18 +99,18 @@ public class TemplateInfo {
* @return the toolChainIds
*/
public String[] getToolChainIds() {
return (String[]) toolChainIdSet.toArray(new String[toolChainIdSet.size()]);
return toolChainIdSet.toArray(new String[toolChainIdSet.size()]);
}
public void setToolChainSet(Set toolChainIdSet) {
public void setToolChainSet(Set<String> toolChainIdSet) {
this.toolChainIdSet = toolChainIdSet;
}
public List getConfigurations() {
public List<?> getConfigurations() {
return configs;
}
public void setConfigurations(List configs) {
public void setConfigurations(List<?> configs) {
this.configs = configs;
}
@ -144,7 +144,6 @@ public class TemplateInfo {
}
/*
* (non-Javadoc)
* @see java.lang.Object#hashCode()
*/
public int hashCode() {

View file

@ -1,5 +1,5 @@
/*******************************************************************************
* Copyright (c) 2007 Symbian Software Limited and others.
* Copyright (c) 2007, 2008 Symbian Software Limited and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@ -13,7 +13,6 @@ package org.eclipse.cdt.core.templateengine.process;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
@ -40,12 +39,12 @@ import org.w3c.dom.Element;
public class ConditionalProcessGroup {
private TemplateCore template;
private Set/*<String>*/ macros;
private Set<String> macros;
private String conditionString;
private String lValue;
private String rValue;
private Operator op;
private List/*<Process>*/ processes;
private List<Process> processes;
private String id;
/**
@ -106,7 +105,7 @@ public class ConditionalProcessGroup {
private void collectMacros(String value) {
if (value != null) {
if (macros == null) {
macros = new HashSet/*<String>*/();
macros = new HashSet<String>();
}
macros.addAll(ProcessHelper.getReplaceKeys(value));
}
@ -125,15 +124,15 @@ public class ConditionalProcessGroup {
}
/**
* Creates the Proccess from the process Elements.
* Creates the Process from the process Elements.
* @param template
* @param processElements
*/
private void createProcessObjects(TemplateCore template, List/*<Element>*/ processElements) {
private void createProcessObjects(TemplateCore template, List<Element> processElements) {
this.template = template;
this.processes = new ArrayList/*<Process>*/(processElements.size());
this.processes = new ArrayList<Process>(processElements.size());
for (int j = 0, l = processElements.size(); j < l; j++) {
Element processElem = (Element) processElements.get(j);
Element processElem = processElements.get(j);
if (processElem.getNodeName().equals(TemplateDescriptor.PROCESS)) {
String processId = id + "--> Process " + (j + 1) + " (" + processElem.getAttribute(Process.ELEM_TYPE) + ")"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
processes.add(new Process(template, processElem, processId));
@ -153,8 +152,7 @@ public class ConditionalProcessGroup {
* @return boolean, as true if the Processes are ready to process
*/
private boolean areProcessesReady() {
for(Iterator i = processes.iterator(); i.hasNext(); ) {
Process process = (Process) i.next();
for(Process process : processes) {
if (!process.isReadyToProcess()) {
return false;
}
@ -168,9 +166,8 @@ public class ConditionalProcessGroup {
*/
private boolean areMacrosForConditionEvaluationExpandable() {
if (macros != null) {
Map/*<String, String>*/ valueStore = template.getValueStore();
for(Iterator i = macros.iterator(); i.hasNext(); ) {
String value = (String) i.next();
Map<String, String> valueStore = template.getValueStore();
for(String value : macros) {
if (valueStore.get(value) == null) {
return false;
}
@ -190,13 +187,12 @@ public class ConditionalProcessGroup {
if (!areMacrosForConditionEvaluationExpandable()) {
return false;
}
Map/*<String, String>*/ valueStore = template.getValueStore();
Map<String, String> valueStore = template.getValueStore();
String lValue = this.lValue;
String rValue = this.rValue;
for(Iterator i = macros.iterator(); i.hasNext(); ) {
String value = (String) i.next();
lValue = lValue.replaceAll(ProcessHelper.START_PATTERN + value + ProcessHelper.END_PATTERN, (String) valueStore.get(value));
rValue = rValue.replaceAll(ProcessHelper.START_PATTERN + value + ProcessHelper.END_PATTERN, (String) valueStore.get(value));
for(String value : macros) {
lValue = lValue.replaceAll(ProcessHelper.START_PATTERN + value + ProcessHelper.END_PATTERN, valueStore.get(value));
rValue = rValue.replaceAll(ProcessHelper.START_PATTERN + value + ProcessHelper.END_PATTERN, valueStore.get(value));
}
if(op.equals(Operator.EQUALS)) {
return lValue.equals(rValue);
@ -213,18 +209,17 @@ public class ConditionalProcessGroup {
* @return List contains the IStatus.
* @throws ProcessFailureException
*/
public List/*<IStatus>*/ process(IProgressMonitor monitor) throws ProcessFailureException {
public List<IStatus> process(IProgressMonitor monitor) throws ProcessFailureException {
if (!areMacrosForConditionEvaluationExpandable()) {
throw new ProcessFailureException(getUnexpandableMacroMessage());
}
if (!isConditionValueTrue()) {
List/*<IStatus>*/ statuses = new ArrayList/*<IStatus>*/(1);
List<IStatus> statuses = new ArrayList<IStatus>(1);
statuses.add(new Status(IStatus.ERROR, CCorePlugin.PLUGIN_ID, IStatus.INFO, TemplateEngineMessages.getString("ConditionalProcessGroup.notExecuting") + id, null)); //$NON-NLS-1$
return statuses;
}
List/*<IStatus>*/ statuses = new ArrayList/*<IStatus>*/(processes.size());
for(Iterator i = processes.iterator(); i.hasNext(); ) {
Process process = (Process) i.next();
List<IStatus> statuses = new ArrayList<IStatus>(processes.size());
for(Process process : processes) {
try {
statuses.add(process.process(monitor));
} catch (ProcessFailureException e) {
@ -240,9 +235,8 @@ public class ConditionalProcessGroup {
*/
private String getUnexpandableMacroMessage() {
if (macros != null) {
Map/*<String, String>*/ valueStore = template.getValueStore();
for(Iterator i = macros.iterator(); i.hasNext(); ) {
String value = (String) i.next();
Map<String, String> valueStore = template.getValueStore();
for(String value : macros) {
if (valueStore.get(value) == null) {
return TemplateEngineMessages.getString("ConditionalProcessGroup.unexpandableMacro") + value; //$NON-NLS-1$
}
@ -255,7 +249,7 @@ public class ConditionalProcessGroup {
* Returns the Macros as a Set.
* @return Set, contains macros
*/
public Set/*<String>*/ getMacros() {
public Set<String> getMacros() {
return macros;
}
@ -263,18 +257,17 @@ public class ConditionalProcessGroup {
* Returns All Macros as a Set.
* @return Set, contains macros
*/
public Set/*<String>*/ getAllMacros() {
Set/*<String>*/ set = null;
public Set<String> getAllMacros() {
Set<String> set = null;
if (macros != null) {
set = new HashSet/*<String>*/();
set = new HashSet<String>();
set.addAll(macros);
}
for(Iterator i = processes.iterator(); i.hasNext(); ) {
Process process = (Process) i.next();
Set/*<String>*/ subSet = process.getMacros();
for(Process process : processes) {
Set<String> subSet = process.getMacros();
if (subSet != null) {
if (set == null) {
set = new HashSet/*<String>*/();
set = new HashSet<String>();
}
set.addAll(subSet);
}

View file

@ -1,5 +1,5 @@
/*******************************************************************************
* Copyright (c) 2007 Symbian Software Limited and others.
* Copyright (c) 2007, 2008 Symbian Software Limited and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@ -61,14 +61,14 @@ public class Process {
* @param element
*/
private void buildArgs(TemplateCore template, Element element) {
List/*<Element>*/ children = TemplateEngine.getChildrenOfElement(element);
List<Element> children = TemplateEngine.getChildrenOfElement(element);
ProcessParameter[] params = processRunner.getProcessParameters();
List/*<ProcessArgument>*/ list = new ArrayList/*<ProcessArgument>*/(params.length);
List<ProcessArgument> list = new ArrayList<ProcessArgument>(params.length);
int childIndex = 0;
for(int i=0; i<params.length; i++) {
ProcessParameter param = params[i];
boolean childrenRemain = childIndex < children.size();
Element child = (Element) (childrenRemain ? children.get(childIndex) : null);
Element child = (childrenRemain ? children.get(childIndex) : null);
if (param.isExternal() && (!childrenRemain || !param.getName().equals(child.getAttribute(ProcessArgument.ELEM_NAME)))) {
list.add(new ProcessArgument(template, param));
} else if (childrenRemain) {
@ -77,9 +77,9 @@ public class Process {
}
}
while (childIndex < children.size()) {
list.add(new ProcessArgument(template, (Element) children.get(childIndex++)));
list.add(new ProcessArgument(template, children.get(childIndex++)));
}
args = (ProcessArgument[]) list.toArray(new ProcessArgument[list.size()]);
args = list.toArray(new ProcessArgument[list.size()]);
}
/**
@ -178,15 +178,15 @@ public class Process {
* Returns the Macros.
* @return
*/
public Set/*<String>*/ getMacros() {
Set/*<String>*/ set = null;
public Set<String> getMacros() {
Set<String> set = null;
if (args != null) {
for(int i=0; i<args.length; i++) {
ProcessArgument arg = args[i];
Set/*<String>*/ subSet = arg.getMacros();
Set<String> subSet = arg.getMacros();
if (subSet != null) {
if (set == null) {
set = new HashSet/*<String>*/();
set = new HashSet<String>();
}
set.addAll(subSet);
}

View file

@ -1,5 +1,5 @@
/*******************************************************************************
* Copyright (c) 2007 Symbian Software Limited and others.
* Copyright (c) 2007, 2008 Symbian Software Limited and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@ -11,16 +11,13 @@
package org.eclipse.cdt.core.templateengine.process;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.eclipse.cdt.core.templateengine.TemplateCore;
import org.eclipse.cdt.core.templateengine.TemplateEngine;
import org.w3c.dom.Element;
/**
* ProcessArgument class responsible for constructing process Arguments by taking info from Template.
*/
@ -47,7 +44,7 @@ public class ProcessArgument {
private TemplateCore template;
private Set/*<String>*/ macros;
private Set<String> macros;
private boolean resolved;
private ProcessParameter externalParam;
@ -66,21 +63,21 @@ public class ProcessArgument {
collectMacros(simpleValue);
} else if (elemName.equals(ELEM_SIMPLE_ARRAY)) {
type = ProcessParameter.SIMPLE_ARRAY;
List/*<Element>*/ valueElements = TemplateEngine.getChildrenOfElementByTag(elem, ELEM_ELEMENT);
List<Element> valueElements = TemplateEngine.getChildrenOfElementByTag(elem, ELEM_ELEMENT);
simpleValueArray = new String[valueElements.size()];
for (int i = 0, l = valueElements.size(); i < l; i++) {
simpleValueArray[i] = ((Element)valueElements.get(i)).getAttribute(ELEM_VALUE);
simpleValueArray[i] = (valueElements.get(i)).getAttribute(ELEM_VALUE);
collectMacros(simpleValueArray[i]);
}
} else if (elemName.equals(ELEM_COMPLEX)) {
type = ProcessParameter.COMPLEX;
List/*<Element>*/ children = TemplateEngine.getChildrenOfElement(elem);
List<Element> children = TemplateEngine.getChildrenOfElement(elem);
complexValue = new ProcessArgument[children.size()];
for (int i = 0, l = children.size(); i < l; i++) {
complexValue[i] = new ProcessArgument(template, (Element) children.get(i));
Set/*<String>*/ subMacros = complexValue[i].getMacros();
complexValue[i] = new ProcessArgument(template, children.get(i));
Set<String> subMacros = complexValue[i].getMacros();
if (macros == null) {
macros = new HashSet/*<String>*/();
macros = new HashSet<String>();
}
if (subMacros != null) {
macros.addAll(subMacros);
@ -88,18 +85,18 @@ public class ProcessArgument {
}
} else if (elemName.equals(ELEM_COMPLEX_ARRAY)) {
type = ProcessParameter.COMPLEX_ARRAY;
List/*<Element>*/ valueElements = TemplateEngine.getChildrenOfElementByTag(elem, ELEM_ELEMENT);
List<Element> valueElements = TemplateEngine.getChildrenOfElementByTag(elem, ELEM_ELEMENT);
complexValueArray = new ProcessArgument[valueElements.size()][];
for (int i = 0, l = valueElements.size(); i < l; i++) {
List/*<Element>*/ children = TemplateEngine.getChildrenOfElement((Element)valueElements.get(i));
List<Element> children = TemplateEngine.getChildrenOfElement(valueElements.get(i));
complexValueArray[i] = new ProcessArgument[children.size()];
for (int j = 0, l2 = children.size(); j < l2; j++) {
complexValueArray[i][j] = new ProcessArgument(template, (Element) children.get(j));
Set/*<String>*/ subMacros = complexValueArray[i][j].getMacros();
complexValueArray[i][j] = new ProcessArgument(template, children.get(j));
Set<String> subMacros = complexValueArray[i][j].getMacros();
if (subMacros != null) {
if (macros == null) {
macros = new HashSet/*<String>*/();
macros = new HashSet<String>();
}
macros.addAll(subMacros);
}
@ -116,7 +113,7 @@ public class ProcessArgument {
this.template = template;
name = param.getName();
type = param.getType();
macros = new HashSet/*<String>*/();
macros = new HashSet<String>();
macros.add(name);
simpleValue = ProcessHelper.getReplaceMarker(name);
this.externalParam = param;
@ -131,7 +128,7 @@ public class ProcessArgument {
return;
}
if (macros == null) {
macros = new HashSet/*<String>*/();
macros = new HashSet<String>();
}
macros.addAll(ProcessHelper.getReplaceKeys(value));
}
@ -242,9 +239,8 @@ public class ProcessArgument {
if (macros == null || macros.size() == 0) {
return true;
}
Map/*<String, String>*/ valueStore = template.getValueStore();
for(Iterator i = macros.iterator(); i.hasNext(); ) {
String macro = (String) i.next();
Map<String, String> valueStore = template.getValueStore();
for(String macro : macros) {
if (valueStore.get(macro) == null) {
return false;
}
@ -283,9 +279,8 @@ public class ProcessArgument {
if (macros == null || macros.size() == 0) {
return null;
}
Map/*<String, String>*/ valueStore = template.getValueStore();
for(Iterator i = macros.iterator(); i.hasNext(); ) {
String macro = (String) i.next();
Map<String, String> valueStore = template.getValueStore();
for(String macro : macros) {
if (valueStore.get(macro) == null) {
return macro;
}
@ -319,7 +314,7 @@ public class ProcessArgument {
* Returns the Macros as Set.
* @return Set, contains the Macros.
*/
public Set/*<String>*/ getMacros() {
public Set<String> getMacros() {
return macros;
}
@ -328,11 +323,11 @@ public class ProcessArgument {
*
*/
public void resolve() {
Map/*<String, String>*/ valueStore = template.getValueStore();
Map<String, String> valueStore = template.getValueStore();
switch (type) {
case ProcessParameter.SIMPLE:
if (externalParam != null) {
resolvedSimpleValue = (String) template.getValueStore().get(name);
resolvedSimpleValue = template.getValueStore().get(name);
} else {
resolvedSimpleValue = simpleValue;
if (macros != null && !macros.isEmpty()) {

View file

@ -1,5 +1,5 @@
/*******************************************************************************
* Copyright (c) 2007 Symbian Software Limited and others.
* Copyright (c) 2007, 2008 Symbian Software Limited and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@ -12,12 +12,14 @@ package org.eclipse.cdt.core.templateengine.process;
import java.util.List;
import org.eclipse.core.runtime.IStatus;
public class ProcessFailureException extends Exception {
private static final long serialVersionUID = 1766239661286962870L;
private List/*<IStatus>*/ statuses;
private List<IStatus> statuses;
/**
* Constructor based on the msg.
* Constructor based on the message.
* @param msg
*/
public ProcessFailureException(String msg) {
@ -25,7 +27,7 @@ public class ProcessFailureException extends Exception {
}
/**
* Constructor based on the msg and cause.
* Constructor based on the message and cause.
* @param cause
*/
public ProcessFailureException(Throwable cause) {
@ -33,7 +35,7 @@ public class ProcessFailureException extends Exception {
}
/**
* Constructor based on the msg and cause.
* Constructor based on the message and cause.
* @param msg
* @param cause
*/
@ -42,16 +44,16 @@ public class ProcessFailureException extends Exception {
}
/**
* Constructor based on the msg and causes.
* Constructor based on the message and causes.
* @param msg
* @param statuses
*/
public ProcessFailureException(String msg, List/*<IStatus>*/ statuses) {
public ProcessFailureException(String msg, List<IStatus> statuses) {
super(msg);
this.statuses = statuses;
}
public ProcessFailureException(String msg, Throwable cause, List/*<IStatus>*/ statuses) {
public ProcessFailureException(String msg, Throwable cause, List<IStatus> statuses) {
super(msg, cause);
this.statuses = statuses;
}
@ -60,7 +62,7 @@ public class ProcessFailureException extends Exception {
* Returns the Statuses.
* @return List, contains the IStatus.
*/
public List/*<IStatus>*/ getStatuses() {
public List<IStatus> getStatuses() {
return statuses;
}
}

View file

@ -1,5 +1,5 @@
/*******************************************************************************
* Copyright (c) 2007 Symbian Software Limited and others.
* Copyright (c) 2007, 2008 Symbian Software Limited and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@ -7,6 +7,7 @@
*
* Contributors:
* Bala Torati (Symbian) - Initial API and implementation
* Mark Espiritu (VastSystems) - bug 215283
*******************************************************************************/
package org.eclipse.cdt.core.templateengine.process;
@ -71,24 +72,18 @@ public class ProcessHelper {
* $(item), vector contains 'item' as one item. , ) is the end pattern.
*
* @param str,
* A given string may contains replace markers.
* @param pattern
* start pattern (e.g., $( is the start pattern)
* @param endPat
* end pattern (e.g., ) is the end pattern)
* @return a set of all replace marker strings.
*
* A given string possibly containing markers.
* @return the set of names occurring within markers
* @since 4.0
*/
public static Set/*<String>*/ getReplaceKeys(String str) {
int start = 0;
int end = 0;
Set/*<String>*/ replaceStrings = new HashSet/*<String>*/();
public static Set<String> getReplaceKeys(String str) {
Set<String> replaceStrings = new HashSet<String>();
int start= 0, end= 0;
while ((start = str.indexOf(START_PATTERN, start)) >= 0) {
end = str.indexOf(END_PATTERN, start);
if (end != -1) {
replaceStrings.add(str.substring(start + START_PATTERN.length(), end));
start = end + START_PATTERN.length();
start = end + END_PATTERN.length();
} else
start++;
}
@ -177,7 +172,7 @@ public class ProcessHelper {
/**
* Returns the Macro Value after Exanding the Macros.
* Returns the Macro Value after expanding the Macros.
* @param string
* @param macros
* @param valueStore
@ -185,41 +180,19 @@ public class ProcessHelper {
*
* @since 4.0
*/
public static String getValueAfterExpandingMacros(String string, Set/*<String>*/ macros, Map/*<String, String>*/ valueStore) {
for (Iterator i = macros.iterator(); i.hasNext();) {
String key = (String) i.next();
String value = (String) valueStore.get(key);
public static String getValueAfterExpandingMacros(String string, Set<String> macros, Map<String, String> valueStore) {
for (Iterator<String> i = macros.iterator(); i.hasNext();) {
String key = i.next();
String value = valueStore.get(key);
if (value != null) {
string = replace(START_PATTERN + key + END_PATTERN, value, string);
string = string.replace(START_PATTERN + key + END_PATTERN, value);
}
}
return string;
}
/**
* This is equivalent to Java 5.0 version of
* String.replace(CharSequence target, CharSequence replacement) method.
* @since 4.0
*/
private static String replace(String target, String replacement, String string) {
try {
StringBuffer stringBuffer = new StringBuffer(string);
int index = string.length();
int offset = target.length();
while ((index=string.lastIndexOf(target, index-1)) != -1) {
stringBuffer.replace(index, index+offset, replacement);
}
return stringBuffer.toString();
} catch (StringIndexOutOfBoundsException e) {
return string;
}
}
/**
* Consturct and Return the Replacment Markers
* Construct and return the replacement markers
* after adding the patterns to the macro.
* @param macro
* @return

View file

@ -1,5 +1,5 @@
/*******************************************************************************
* Copyright (c) 2007 Symbian Software Limited and others.
* Copyright (c) 2007, 2008 Symbian Software Limited and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@ -23,7 +23,6 @@ import org.eclipse.core.runtime.IExtension;
import org.eclipse.core.runtime.IExtensionPoint;
import org.eclipse.core.runtime.Platform;
/**
* Factory class for creating the Process Runners.
*/
@ -37,18 +36,18 @@ public class ProcessRunnerFactory {
instance = new ProcessRunnerFactory();
}
private Map/*<String, ProcessRunner>*/ processRunnerMap;
private Map<String, ProcessRunner> processRunnerMap;
private ProcessRunnerFactory() {
initializeProcessRunners();
}
/**
* initializes the process runners.
* Initialises the process runners.
*
*/
private synchronized void initializeProcessRunners() {
processRunnerMap = new HashMap/*<String, ProcessRunner>*/();
processRunnerMap = new HashMap<String, ProcessRunner>();
IExtensionPoint point = Platform.getExtensionRegistry().getExtensionPoint(EXTENSION_POINT_PROCESSES);
IExtension[] extensions = point.getExtensions();
for(int i=0; i<extensions.length; i++) {
@ -61,21 +60,20 @@ public class ProcessRunnerFactory {
if (processType != null) {
try {
ProcessRunner runner = (ProcessRunner) element.createExecutableExtension(ELEM_PROCESS_RUNNER);
List/*<ProcessParameter>*/ params = null;
List<ProcessParameter> params = null;
IConfigurationElement[] elementChildren = element.getChildren();
for (int k=0; k<elementChildren.length; k++) {
if (params == null) {
params = new ArrayList/*<ProcessParameter>*/();
params = new ArrayList<ProcessParameter>();
}
params.add(new ProcessParameter(elementChildren[k]));
}
if (params != null) {
runner.setProcessParameters((ProcessParameter[])params.toArray(new ProcessParameter[params.size()]));
runner.setProcessParameters(params.toArray(new ProcessParameter[params.size()]));
}
processRunnerMap.put(prefix + processType, runner);
} catch (CoreException e) {
TemplateEngineUtil.log(e);
// TemplateEngine.showError(e.getMessage(), e);
}
}
}
@ -83,7 +81,7 @@ public class ProcessRunnerFactory {
}
/**
* Process Runners Factory instace.
* Process Runners Factory instance.
* @return
*/
public static ProcessRunnerFactory getDefault() {
@ -96,6 +94,6 @@ public class ProcessRunnerFactory {
* @return
*/
public ProcessRunner getProcessRunner(String processType) {
return (ProcessRunner) processRunnerMap.get(processType);
return processRunnerMap.get(processType);
}
}

View file

@ -1,5 +1,5 @@
/*******************************************************************************
* Copyright (c) 2007 Symbian Software Limited and others.
* Copyright (c) 2007, 2008 Symbian Software Limited and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@ -12,7 +12,6 @@ package org.eclipse.cdt.core.templateengine.process;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
@ -30,7 +29,7 @@ import org.w3c.dom.Element;
public class TemplateProcessHandler {
private TemplateCore template;
private List/*<ConditionalProcessGroup>*/ conditionalProcessGroupList;
private List<ConditionalProcessGroup> conditionalProcessGroupList;
public TemplateProcessHandler(TemplateCore template) {
this.template = template;
@ -38,20 +37,19 @@ public class TemplateProcessHandler {
}
/**
* initializes the template descriptor and Root Elements.
*
* Initialises the template descriptor and Root Elements.
*/
private void initialize() {
TemplateDescriptor desc = template.getTemplateDescriptor();
Element root = desc.getRootElement();
conditionalProcessGroupList = new ArrayList/*<ConditionalProcessGroup>*/();
List/*<Element>*/ nodeList = TemplateEngine.getChildrenOfElementByTag(root, TemplateDescriptor.IF);
conditionalProcessGroupList = new ArrayList<ConditionalProcessGroup>();
List<Element> nodeList = TemplateEngine.getChildrenOfElementByTag(root, TemplateDescriptor.IF);
for (int j = 0, l = nodeList.size(); j < l; j++) {
conditionalProcessGroupList.add(new ConditionalProcessGroup(template, (Element) nodeList.get(j), j + 1));
conditionalProcessGroupList.add(new ConditionalProcessGroup(template, nodeList.get(j), j + 1));
}
//Collect all free-hanging processes in one ConditionalProcessGroup object with condition true.
nodeList = TemplateEngine.getChildrenOfElementByTag(root, TemplateDescriptor.PROCESS);
conditionalProcessGroupList.add(new ConditionalProcessGroup(template, (Element[]) nodeList.toArray(new Element[nodeList.size()])));
conditionalProcessGroupList.add(new ConditionalProcessGroup(template, nodeList.toArray(new Element[nodeList.size()])));
}
/**
@ -61,25 +59,25 @@ public class TemplateProcessHandler {
* @throws ProcessFailureException
*/
public IStatus[] processAll(IProgressMonitor monitor) throws ProcessFailureException {
List/*<IStatus>*/ allStatuses = new ArrayList/*<IStatus>*/();
for (Iterator i = conditionalProcessGroupList.iterator(); i.hasNext();) {
List<IStatus> allStatuses = new ArrayList<IStatus>();
for(ConditionalProcessGroup cpg : conditionalProcessGroupList) {
try {
allStatuses.addAll(((ConditionalProcessGroup)i.next()).process(monitor));
allStatuses.addAll(cpg.process(monitor));
} catch (ProcessFailureException e) {
throw new ProcessFailureException(e.getMessage(), e, allStatuses);
}
}
return (IStatus[]) allStatuses.toArray(new IStatus[allStatuses.size()]);
return allStatuses.toArray(new IStatus[allStatuses.size()]);
}
/**
* Returns all macros
* @return
*/
public Set/*<String>*/ getAllMacros() {
Set/*<String>*/ set = new HashSet/*<String>*/();
for (Iterator i = conditionalProcessGroupList.iterator(); i.hasNext();) {
Set/*<String>*/ subSet = ((ConditionalProcessGroup)i.next()).getAllMacros();
public Set<String> getAllMacros() {
Set<String> set = new HashSet<String>();
for(ConditionalProcessGroup cpg : conditionalProcessGroupList) {
Set<String> subSet = cpg.getAllMacros();
if (subSet != null) {
set.addAll(subSet);
}

View file

@ -1,5 +1,5 @@
/*******************************************************************************
* Copyright (c) 2007 Symbian Software Limited and others.
* Copyright (c) 2007, 2008 Symbian Software Limited and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@ -104,14 +104,14 @@ public class CreateSourceFolder extends ProcessRunner {
for(int i=0; i < configs.length; i++){
ICConfigurationDescription config = configs[i];
ICSourceEntry[] entries = config.getSourceEntries();
Set set = new HashSet();
Set<ICSourceEntry> set = new HashSet<ICSourceEntry>();
for (int j=0; j < entries.length; j++) {
if(new Path(entries[j].getValue()).segmentCount() == 1)
continue;
set.add(entries[j]);
}
set.add(newEntry);
config.setSourceEntries((ICSourceEntry[])set.toArray(new ICSourceEntry[set.size()]));
config.setSourceEntries(set.toArray(new ICSourceEntry[set.size()]));
}
CCorePlugin.getDefault().setProjectDescription(projectHandle, description, false, monitor);
@ -126,7 +126,7 @@ public class CreateSourceFolder extends ProcessRunner {
*/
private void createFolder(String targetPath, IProgressMonitor monitor, IPath projPath, ICProject cProject) throws CModelException {
IPathEntry[] entries = cProject.getRawPathEntries();
List/*<IPathEntry>*/ newEntries = new ArrayList/*<IPathEntry>*/(entries.length + 1);
List<IPathEntry> newEntries = new ArrayList<IPathEntry>(entries.length + 1);
int projectEntryIndex= -1;
IPath path = projPath.append(targetPath);
@ -151,7 +151,7 @@ public class CreateSourceFolder extends ProcessRunner {
newEntries.add(CoreModel.newSourceEntry(path));
}
cProject.setRawPathEntries((IPathEntry[])newEntries.toArray(new IPathEntry[newEntries.size()]), monitor);
cProject.setRawPathEntries(newEntries.toArray(new IPathEntry[newEntries.size()]), monitor);
}
}