Coverage Report - net.sf.sapjcosupport.SapQLSupport
 
Classes in this File Line Coverage Branch Coverage Complexity
SapQLSupport
0% 
0% 
2
 
 1  
 package net.sf.sapjcosupport;
 2  
 
 3  
 import java.io.Serializable;
 4  
 import java.util.ArrayList;
 5  
 import java.util.HashMap;
 6  
 import java.util.List;
 7  
 import java.util.Map;
 8  
 
 9  
 /**
 10  
  * @author Niki Driessen
 11  
  * @since Apr 21, 2006 - 2:40:21 PM
 12  
  */
 13  0
 public abstract class SapQLSupport extends SapSearchHelp {
 14  
 
 15  
     protected abstract Class getPersistentClass();
 16  
 
 17  
     protected abstract Object getPrimaryKey(Object data);
 18  
 
 19  
     protected abstract boolean useInputList();
 20  
 
 21  
     protected abstract String getPrimaryKeySapName();
 22  
 
 23  
     public List executeQuery(String sapQL, String parameter, int maxResults, boolean fetchFullData) {
 24  0
         return executeQuery(sapQL, new String[]{parameter}, maxResults, fetchFullData);
 25  
     }
 26  
 
 27  
     public List executeQuery(String sapQL, int maxResults, boolean fetchFullData) {
 28  0
         return executeQuery(sapQL, new String[0], maxResults, fetchFullData);
 29  
     }
 30  
 
 31  
     public List executeQuery(String sapQL, String[] parameters, int maxResults, boolean fetchFullData) {
 32  0
         SapQuery query = new SapQuery(sapQL, getPersistentClass(), maxResults);
 33  0
         query.setParameters(parameters);
 34  0
         List tempObjects = query.executeQuery(this);
 35  0
         if (tempObjects == null || tempObjects.size() == 0) {
 36  0
             return new ArrayList(0);
 37  
         }
 38  0
         return fetchFullData(fetchFullData, tempObjects);
 39  
     }
 40  
 
 41  
     protected List fetchFullData(boolean fetchFullData, List resultsFromSearchHelp) {
 42  0
         if (fetchFullData) {
 43  0
             List keys = new ArrayList(resultsFromSearchHelp.size());
 44  0
             for (int i = 0; i < resultsFromSearchHelp.size(); i++) {
 45  0
                 Object data = resultsFromSearchHelp.get(i);
 46  0
                 keys.add(getPrimaryKey(data));
 47  
             }
 48  0
             return fetch(keys);
 49  
         } else {
 50  0
             return resultsFromSearchHelp;
 51  
         }
 52  
     }
 53  
 
 54  
     public List fetch(List primaryKeys) {
 55  0
         Object input = generateInputMap(primaryKeys);
 56  0
         if (input instanceof Map) {
 57  0
             return (List) retrieve(getPersistentClass(), (Map) input);
 58  
         } else {
 59  0
             return retrieve(getPersistentClass(), (List) input);
 60  
         }
 61  
     }
 62  
 
 63  
     public Object fetch(Object primaryKey) {
 64  0
         Object input = generateInputMap((Serializable) primaryKey);
 65  0
         if (input instanceof Map) {
 66  0
             return (List) retrieve(getPersistentClass(), (Map) input);
 67  
         } else {
 68  0
             return retrieve(getPersistentClass(), (List) input);
 69  
         }
 70  
     }
 71  
 
 72  
     protected Object generateInputMap(Serializable id) {
 73  0
         List list = new ArrayList();
 74  0
         list.add(id);
 75  0
         return generateInputMap(list);
 76  
     }
 77  
 
 78  
     protected Object generateInputMap(List ids) {
 79  0
         if (useInputList()) {
 80  0
             Map input = new HashMap(1);
 81  0
             input.put(getPrimaryKeySapName(), ids);
 82  0
             return input;
 83  
         } else {
 84  0
             List results = new ArrayList(ids.size());
 85  0
             for (int i = 0; i < ids.size(); i++) {
 86  0
                 Object id = ids.get(i);
 87  0
                 Map input = new HashMap(1);
 88  0
                 input.put(getPrimaryKeySapName(), id);
 89  0
                 results.add(input);
 90  
             }
 91  0
             return results;
 92  
         }
 93  
     }
 94  
 }