Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package org.teiid.olingo.service;
  
  import java.sql.ResultSet;
  import java.util.HashMap;
  import java.util.List;
 
 
 public class OperationResponseImpl implements OperationResponse {
     private final String invalidCharacterReplacement;
     private EdmType type;
     private List<ComplexValuecomplexValues = new ArrayList<ComplexValue>();
     private Object primitiveValue;
     
     public OperationResponseImpl(String invalidCharacterReplacementEdmType type) {
         this. = invalidCharacterReplacement;
         this. = type;
     }
     
     @Override
     public void addRow(ResultSet rsthrows SQLException {
         // check for special lob case where single value resultset is present
         if (rs.getMetaData().getColumnCount() == 1) {
             Object value = rs.getObject(1);
             if (DataTypeManager.isLOB(value.getClass())) {
                 addPrimitive(value);
                 return;
             }
         }
         this..add(getComplexProperty(rs));
     }
     
     private ComplexValue getComplexProperty(ResultSet rsthrows SQLException {
         HashMap<IntegerPropertyproperties = new HashMap<IntegerProperty>();
         for (int i = 0; i < rs.getMetaData().getColumnCount(); i++) {
             Object value = rs.getObject(i + 1);
             String propName = rs.getMetaData().getColumnLabel(i + 1);
             EdmElement element = ((EdmComplexType)this.).getProperty(propName);
             if (!(element instanceof EdmProperty) && !((EdmPropertyelement).isPrimitive()) {
                 throw new SQLException(..gs(..));
             }
             EdmPropertyImpl edmProperty = (EdmPropertyImplelement;
             Property property;
             try {
                 property = EntityList.buildPropery(propName,
                         (SingletonPrimitiveTypeedmProperty.getType(), edmProperty.isCollection(), value,
                         );
                 properties.put(iproperty);
             } catch (IOException e) {
                 throw new SQLException(e);
             } catch (TransformationException e) {
                 throw new SQLException(e);
             }
         }
 
         // properties can contain more than what is requested in project to build links
         // filter those columns out.        
         return createComplex("result"properties.values());
     }
     
     static ComplexValue createComplex(final String namefinal Collection<Propertyproperties) {
         ComplexValue complexValue = new ComplexValue();
         for (final Property property : properties) {
             complexValue.getValue().add(property);
         }
         return complexValue;
     }
 
     static Property createComplexCollection(final String name,
             final String typefinal List<ComplexValuecomplexList) {
         return new Property(typename.complexList);
     }    
     
     static Property createPrimitive(final String name,
             final String typefinal Object value) {
         return new Property(typename.value);
     }    
 
     @Override
     public long size() {
         return this..size();
     }
    @Override
    public void setCount(long count) {
    }
    @Override
    public void setNextToken(String token) {
    }
    @Override
    public String getNextToken() {
        return null;
    }
    @Override
    public Object getResult() {
        String type = this..getFullQualifiedName().getFullQualifiedNameAsString();        
        if (isReturnTypePrimitive()) {
            return createPrimitive("return"typethis.);
        } else {
            return createComplexCollection("result"typethis.);
        }
    }
    
    private boolean isReturnTypePrimitive() {
        return .getKind() == .;
    }
    @Override
    public void addPrimitive(Object value) {
        this. = value;
    }
New to GrepCode? Check out our FAQ X