Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   Copyright 2013 Red Hat, Inc. and/or its affiliates.
  
   This file is part of lightblue.
  
   This program is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation, either version 3 of the License, or
   (at your option) any later version.
 
  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.
 
  You should have received a copy of the GNU General Public License
  along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 package com.redhat.lightblue.metadata.mongo;
 
 import java.util.Date;
 import java.util.List;
 import java.util.Set;
 
 
 
 @SuppressWarnings({"rawtypes""unchecked"})
 public class BSONParser extends MetadataParser<BSONObject> {
     private static final Logger LOGGER = LoggerFactory.getLogger(BSONParser.class);
 
     public static final String DELIMITER_ID = "|";
 
     public BSONParser(Extensions<BSONObjectex,
                       TypeResolver resolver) {
         super(exresolver);
     }
 
     @Override
     public String getStringProperty(BSONObject objectString name) {
         Object x = object.get(name);
         if (x != null) {
             if (x instanceof String) {
                 return (Stringx;
             } else {
                 throw Error.get(.name);
             }
         } else {
             return null;
         }
     }
 
     @Override
     public BSONObject getObjectProperty(BSONObject objectString name) {
         Object x = object.get(name);
         if (x != null) {
             if (x instanceof BSONObject) {
                 return (BSONObjectx;
             } else {
                 throw Error.get(.name);
             }
         } else {
             return null;
         }
     }
 
     @Override
     public Object getValueProperty(BSONObject objectString name) {
         Object x = object.get(name);
         if (x != null) {
             if (x instanceof Number
                     || x instanceof String
                     || x instanceof Date
                     || x instanceof Boolean) {
                return x;
            } else {
                throw Error.get(.name);
            }
        } else {
            return null;
        }
    }
    @Override
    public List<StringgetStringList(BSONObject objectString name) {
        Object x = object.get(name);
        if (x != null) {
            if (x instanceof List) {
                ArrayList<Stringret = new ArrayList<>();
                for (Object o : (Listx) {
                    ret.add(o.toString());
                }
                return ret;
            } else {
                throw Error.get(.name);
            }
        } else {
            return null;
        }
    }
    @Override
    public List<BSONObjectgetObjectList(BSONObject objectString name) {
        Object x = object.get(name);
        if (x != null) {
            if (x instanceof List) {
                return (List<BSONObject>) x;
            } else {
                throw Error.get(.name);
            }
        } else {
            return null;
        }
    }
    @Override
    public BSONObject newNode() {
        return new BasicDBObject();
    }
    @Override
    public Set<StringgetChildNames(BSONObject object) {
        return object.keySet();
    }
    @Override
    public void putString(BSONObject objectString nameString value) {
        object.put(namevalue);
    }
    @Override
    public void putObject(BSONObject objectString nameObject value) {
        object.put(namevalue);
    }
    @Override
    public void putValue(BSONObject objectString nameObject value) {
        object.put(namevalue);
    }
    @Override
    public Object newArrayField(BSONObject objectString name) {
        Object ret = new ArrayList();
        object.put(nameret);
        return ret;
    }
    @Override
    public void addStringToArray(Object arrayString value) {
        ((Listarray).add(value);
    }
    @Override
    public void addObjectToArray(Object arrayObject value) {
        ((Listarray).add(value);
    }
    @Override
    public Set<StringfindFieldsNotIn(BSONObject elementsSet<StringremoveAllFields) {
        final Set<Stringstrings = new HashSet<>(elements.keySet());
        strings.removeAll(removeAllFields);
        return strings;
    }

    
Override to set _id appropriately.
    @Override
    public BSONObject convert(EntityInfo info) {
        Error.push("convert[info|bson]");
        try {
            BSONObject doc = super.convert(info);
            // entityInfo._id = {entityInfo.name}|
            putValue(doc"_id"getStringProperty(doc"name") + );
            return doc;
        } catch (Error e) {
            // rethrow lightblue error
            throw e;
        } catch (Exception e) {
            // throw new Error (preserves current error context)
            .error(e.getMessage(), e);
            throw Error.get(.e.getMessage());
        } finally {
            Error.pop();
        }
    }

    
Override to set _id appropriately.
    @Override
    public BSONObject convert(EntitySchema schema) {
        Error.push("convert[info|bson]");
        try {
            BSONObject doc = super.convert(schema);
            putValue(doc"_id"getStringProperty(doc"name") +  + getStringProperty(getObjectProperty(doc"version"), "value"));
            return doc;
        } catch (Error e) {
            // rethrow lightblue error
            throw e;
        } catch (Exception e) {
            // throw new Error (preserves current error context)
            .error(e.getMessage(), e);
            throw Error.get(.e.getMessage());
        } finally {
            Error.pop();
        }
    }
    @Override
    public List<BSONObjectgetObjectList(BSONObject object) {
        if (object instanceof List) {
            return (List<BSONObject>) object;
        } else {
            throw Error.get(.);
        }
    }
    @Override
    public Projection getProjection(BSONObject objectString name) {
        String x = (Stringobject.get(name);
        return x == null ? null : Projection.fromJson(toJson(x));
    }
    @Override
    public QueryExpression getQuery(BSONObject objectString name) {
        String x = (Stringobject.get(name);
        return x == null ? null : QueryExpression.fromJson(toJson(x));
    }
    @Override
    public Sort getSort(BSONObject objectString name) {
        String x = (Stringobject.get(name);
        return x == null ? null : Sort.fromJson(toJson(x));
    }
    @Override
    public void putProjection(BSONObject objectString nameProjection p) {
        if (p != null) {
            object.put(namep.toJson().toString());
        }
    }
    @Override
    public void putQuery(BSONObject objectString nameQueryExpression q) {
        if (q != null) {
            object.put(nameq.toJson().toString());
        }
    }
    @Override
    public void putSort(BSONObject objectString nameSort s) {
        if (s != null) {
            object.put(names.toJson().toString());
        }
    }
    private static Object convertValue(JsonNode node) {
        if (node instanceof BigIntegerNode) {
            return node.bigIntegerValue();
        } else if (node instanceof BooleanNode) {
            return node.asBoolean();
        } else if (node instanceof DecimalNode) {
            return node.decimalValue();
        } else if (node instanceof DoubleNode
                || node instanceof FloatNode) {
            return node.asDouble();
        } else if (node instanceof IntNode
                || node instanceof LongNode
                || node instanceof ShortNode) {
            return node.asLong();
        }
        return node.asText();
    }
    private static JsonNode toJson(String object) {
        try {
            return JsonUtils.json(object);
        } catch (Exception e) {
            throw Error.get(.object);
        }
    }
New to GrepCode? Check out our FAQ X