|
Lines 20-25
Link Here
|
| 20 |
|
20 |
|
| 21 |
import org.eclipse.emf.common.util.BasicEList; |
21 |
import org.eclipse.emf.common.util.BasicEList; |
| 22 |
import org.eclipse.emf.common.util.EList; |
22 |
import org.eclipse.emf.common.util.EList; |
|
|
23 |
import org.eclipse.emf.ecore.EObject; |
| 23 |
import org.eclipse.emf.ecore.resource.Resource; |
24 |
import org.eclipse.emf.ecore.resource.Resource; |
| 24 |
import org.eclipse.emf.ecore.resource.ResourceSet; |
25 |
import org.eclipse.emf.ecore.resource.ResourceSet; |
| 25 |
import org.eclipse.emf.ecore.util.EcoreUtil; |
26 |
import org.eclipse.emf.ecore.util.EcoreUtil; |
|
Lines 43-48
Link Here
|
| 43 |
|
44 |
|
| 44 |
/** |
45 |
/** |
| 45 |
* @author apnan, Created on Jun 10, 2005 |
46 |
* @author apnan, Created on Jun 10, 2005 |
|
|
47 |
* @author slavescu |
| 46 |
* |
48 |
* |
| 47 |
*/ |
49 |
*/ |
| 48 |
public class DBSimpleSearchCommand extends DBCommand { |
50 |
public class DBSimpleSearchCommand extends DBCommand { |
|
Lines 67-73
Link Here
|
| 67 |
* @see org.eclipse.hyades.resources.database.internal.impl.DBCommand#execute() |
69 |
* @see org.eclipse.hyades.resources.database.internal.impl.DBCommand#execute() |
| 68 |
*/ |
70 |
*/ |
| 69 |
public Object execute() throws Exception { |
71 |
public Object execute() throws Exception { |
| 70 |
SQLStatement ssqs = createSimpleSearchQueryStatement(helper, dbMap, query); |
72 |
SQLStatement ssqs; |
|
|
73 |
boolean cbeRelated = isCBERelated(query); |
| 74 |
if(cbeRelated) |
| 75 |
ssqs = createSimpleSearchQueryStatementForCBE(helper, dbMap, query); |
| 76 |
else |
| 77 |
ssqs = new SimpleSearchQueryStatement(helper,dbMap,query); |
| 78 |
|
| 71 |
String s = ssqs.getStatement(); |
79 |
String s = ssqs.getStatement(); |
| 72 |
QueryResult queryResult = ExtensionsFactory.eINSTANCE.createQueryResult(); |
80 |
QueryResult queryResult = ExtensionsFactory.eINSTANCE.createQueryResult(); |
| 73 |
queryResult.setQuery(query); |
81 |
queryResult.setQuery(query); |
|
Lines 75-82
Link Here
|
| 75 |
PerfUtil p = PerfUtil.createInstance("SimpleSearchCommand.execute() 1 statement="+s,true); |
83 |
PerfUtil p = PerfUtil.createInstance("SimpleSearchCommand.execute() 1 statement="+s,true); |
| 76 |
try { |
84 |
try { |
| 77 |
if(!query.isCount()){ |
85 |
if(!query.isCount()){ |
| 78 |
updateParams(); |
86 |
if(cbeRelated){ |
| 79 |
helper.commitTransaction(); |
87 |
updateParams(); |
|
|
88 |
helper.commitTransaction(); |
| 89 |
} |
| 80 |
} |
90 |
} |
| 81 |
helper.executeQuery(st, s); |
91 |
helper.executeQuery(st, s); |
| 82 |
} catch (Exception e) { |
92 |
} catch (Exception e) { |
|
Lines 108-120
Link Here
|
| 108 |
return queryResult; |
118 |
return queryResult; |
| 109 |
} |
119 |
} |
| 110 |
|
120 |
|
|
|
121 |
protected boolean isCBERelated(SimpleSearchQuery query2) { |
| 122 |
for (Iterator iterator = query.getOutputElements().iterator(); iterator.hasNext();) { |
| 123 |
SimpleOperand name = (SimpleOperand) iterator.next(); |
| 124 |
EObject eo = DBHyadesResourceExtension.getOperandType(name); |
| 125 |
while(eo!=null) |
| 126 |
{ |
| 127 |
if(eo.eContainer()==CBEPackage.eINSTANCE) |
| 128 |
return true; |
| 129 |
eo = eo.eContainer(); |
| 130 |
} |
| 131 |
} |
| 132 |
return false; |
| 133 |
} |
| 134 |
|
| 111 |
/** |
135 |
/** |
| 112 |
* @param helper |
136 |
* @param helper |
| 113 |
* @param dbMap |
137 |
* @param dbMap |
| 114 |
* @param query2 |
138 |
* @param query2 |
| 115 |
* @return |
139 |
* @return |
| 116 |
*/ |
140 |
*/ |
| 117 |
protected SQLStatement createSimpleSearchQueryStatement(JDBCHelper helper1, DBMap dbMap1, SimpleSearchQuery query2) { |
141 |
protected SQLStatement createSimpleSearchQueryStatementForCBE(JDBCHelper helper1, DBMap dbMap1, SimpleSearchQuery query2) { |
| 118 |
return new SimpleSearchQueryStatement(helper1,dbMap1,query2){ |
142 |
return new SimpleSearchQueryStatement(helper1,dbMap1,query2){ |
| 119 |
/* (non-Javadoc) |
143 |
/* (non-Javadoc) |
| 120 |
* @see org.eclipse.hyades.resources.database.internal.impl.SimpleSearchQueryStatement#processOutputElementsInSelectFrom() |
144 |
* @see org.eclipse.hyades.resources.database.internal.impl.SimpleSearchQueryStatement#processOutputElementsInSelectFrom() |