/** * Reads JSON data from the reader and returns a search result. * * @return search result derived from the JSON * @throws IOException if an error occurs using the reader */ @Override @SuppressWarnings("unchecked") public SearchResult read() throws IOException { final SearchResult result = new SearchResult(sortBehavior); try { final JSONParser parser = new JSONParser(); final JSONArray jsonArray = (JSONArray) parser.parse(jsonReader); for (Object o : jsonArray) { final LdapEntry entry = new LdapEntry(sortBehavior); final JSONObject jsonObject = (JSONObject) o; for (Object k : jsonObject.keySet()) { final String attrName = (String) k; if ("dn".equalsIgnoreCase(attrName)) { entry.setDn((String) jsonObject.get(k)); } else { final LdapAttribute attr = new LdapAttribute(sortBehavior); attr.setName(attrName); attr.addStringValues((List<String>) jsonObject.get(k)); entry.addAttribute(attr); } } result.addEntry(entry); } } catch (ParseException e) { throw new IOException(e); } return result; }
/** * Creates a new ldap entry. * * @param dn dn for this entry * @param attr ldap attribute for this entry */ public LdapEntry(final String dn, final LdapAttribute... attr) { this(); setDn(dn); for (LdapAttribute a : attr) { addAttribute(a); } }
/** * Creates an ldap entry containing float based string values. * * @return ldap entry */ public static LdapEntry createLdapEntry() { final LdapAttribute typeArray1 = new LdapAttribute(SortBehavior.ORDERED); typeArray1.setName("typeArray1"); typeArray1.addStringValue("301.1", "302.2"); final LdapAttribute typeArray2 = new LdapAttribute(SortBehavior.ORDERED); typeArray2.setName("typeArray2"); typeArray2.addStringValue("301.1", "302.2"); final LdapAttribute typeCol1 = new LdapAttribute(SortBehavior.ORDERED); typeCol1.setName("typeCol1"); typeCol1.addStringValue("501.5", "502.5"); final LdapAttribute typeCol2 = new LdapAttribute(SortBehavior.ORDERED); typeCol2.setName("typeCol2"); typeCol2.addStringValue("501.5", "502.5"); final LdapAttribute typeSet1 = new LdapAttribute(SortBehavior.ORDERED); typeSet1.setName("typeSet1"); typeSet1.addStringValue("601.6", "602.6"); final LdapAttribute typeSet2 = new LdapAttribute(SortBehavior.ORDERED); typeSet2.setName("typeSet2"); typeSet2.addStringValue("601.6", "602.6"); final LdapAttribute typeList1 = new LdapAttribute(SortBehavior.ORDERED); typeList1.setName("typeList1"); typeList1.addStringValue("701.7", "702.7"); final LdapAttribute typeList2 = new LdapAttribute(SortBehavior.ORDERED); typeList2.setName("typeList2"); typeList2.addStringValue("701.7", "702.7"); final LdapEntry entry = new LdapEntry(); entry.setDn("cn=Float Entry,ou=people,dc=ldaptive,dc=org"); entry.addAttribute( new LdapAttribute("type1", "100.1"), new LdapAttribute("type2", "200.2"), new LdapAttribute("numberthree", "300.3"), typeArray1, typeArray2, typeCol1, typeCol2, typeSet1, typeSet2, typeList1, typeList2); return entry; }
/** * Creates an ldap entry containing boolean based string values. * * @return ldap entry */ public static LdapEntry createLdapEntry() { final LdapAttribute typeArray1 = new LdapAttribute(SortBehavior.ORDERED); typeArray1.setName("typeArray1"); typeArray1.addStringValue("false", "true"); final LdapAttribute typeArray2 = new LdapAttribute(SortBehavior.ORDERED); typeArray2.setName("typeArray2"); typeArray2.addStringValue("false", "true"); final LdapAttribute typeCol1 = new LdapAttribute(SortBehavior.ORDERED); typeCol1.setName("typeCol1"); typeCol1.addStringValue("true", "false"); final LdapAttribute typeCol2 = new LdapAttribute(SortBehavior.ORDERED); typeCol2.setName("typeCol2"); typeCol2.addStringValue("false", "true"); final LdapAttribute typeSet1 = new LdapAttribute(SortBehavior.ORDERED); typeSet1.setName("typeSet1"); typeSet1.addStringValue("true", "false"); final LdapAttribute typeSet2 = new LdapAttribute(SortBehavior.ORDERED); typeSet2.setName("typeSet2"); typeSet2.addStringValue("true", "false"); final LdapAttribute typeList1 = new LdapAttribute(SortBehavior.ORDERED); typeList1.setName("typeList1"); typeList1.addStringValue("false", "true"); final LdapAttribute typeList2 = new LdapAttribute(SortBehavior.ORDERED); typeList2.setName("typeList2"); typeList2.addStringValue("true", "false"); final LdapEntry entry = new LdapEntry(); entry.setDn("cn=Boolean Entry,ou=people,dc=ldaptive,dc=org"); entry.addAttribute( new LdapAttribute("type1", "true"), new LdapAttribute("type2", "false"), new LdapAttribute("booleanthree", "true"), typeArray1, typeArray2, typeCol1, typeCol2, typeSet1, typeSet2, typeList1, typeList2); return entry; }
/** * Creates an ldap entry containing binary data. * * @return ldap entry */ public static LdapEntry createLdapEntry() { // CheckStyle:MagicNumber OFF final LdapAttribute typeCol1 = new LdapAttribute(SortBehavior.ORDERED, true); typeCol1.setName("typeCol1"); typeCol1.addBinaryValue(new byte[] {0x20, 0x0F, 0x1F}, new byte[] {0x21}); final LdapAttribute typeCol2 = new LdapAttribute(SortBehavior.ORDERED, true); typeCol2.setName("typeCol2"); typeCol2.addBinaryValue(new byte[] {0x20, 0x0F, 0x1F}, new byte[] {0x21}); final LdapAttribute typeSet1 = new LdapAttribute(SortBehavior.ORDERED, true); typeSet1.setName("typeSet1"); typeSet1.addBinaryValue(new byte[] {0x22, 0x0F, 0x1F}, new byte[] {0x23}); final LdapAttribute typeSet2 = new LdapAttribute(SortBehavior.ORDERED, true); typeSet2.setName("typeSet2"); typeSet2.addBinaryValue(new byte[] {0x22, 0x0F, 0x1F}, new byte[] {0x23}); final LdapAttribute typeList1 = new LdapAttribute(SortBehavior.ORDERED, true); typeList1.setName("typeList1"); typeList1.addBinaryValue(new byte[] {0x24, 0x0F, 0x1F}, new byte[] {0x25}); final LdapAttribute typeList2 = new LdapAttribute(SortBehavior.ORDERED, true); typeList2.setName("typeList2"); typeList2.addBinaryValue(new byte[] {0x24, 0x0F, 0x1F}, new byte[] {0x25}); final LdapEntry entry = new LdapEntry(); entry.setDn("cn=Binary Entry,ou=people,dc=ldaptive,dc=org"); entry.addAttribute( new LdapAttribute("customname1", new byte[] {0x40, 0x41, 0x42, 0x43}), new LdapAttribute( "customname2", new byte[] {0x44, 0x45, 0x46, 0x47}, new byte[] {0x48, 0x49, 0x50, 0x51}), new LdapAttribute("type1", new byte[] {0x01}), new LdapAttribute("type2", new byte[] {0x02, 0x0F}), new LdapAttribute("binarythree", new byte[] {0x03, 0x0F, 0x1F}), typeCol1, typeCol2, typeSet1, typeSet2, typeList1, typeList2); return entry; // CheckStyle:MagicNumber ON }
/** * Creates a new ldap entry. * * @param dn dn for this entry * @param attrs collection of attributes to add */ public LdapEntry(final String dn, final Collection<LdapAttribute> attrs) { this(); setDn(dn); addAttributes(attrs); }
/** * Creates a new ldap entry. * * @param dn dn for this entry */ public LdapEntry(final String dn) { this(); setDn(dn); }