Java 类org.hibernate.collection.PersistentSet 实例源码

项目:document-management-system    文件:UtilFunctions.java   
public static boolean contains(Collection<?> collection, Object obj) {
    if (collection != null) {
        if (collection instanceof PersistentSet) {
            for (Object elto : collection) {
                if (elto.equals(obj)) {
                    return true;
                }
            }

            return false;
        } else {
            return collection.contains(obj);
        }
    } else {
        return false;
    }
}
项目:FreeYourCode    文件:AgentTestGeneratorPluginTest.java   
@SuppressWarnings("unchecked")
@Test
public void testPersistentSetsAreConverted() throws Exception {
    // We create a initialized persistentSet with valid snapshot.
    PersistentSet set = new PersistentSet(null, new HashSet<>());
    set.setSnapshot(null, null, new HashMap<Object, Object>());

    invokeMethod("myMethod2ParamPrimitifResultPrimitif", 45.2d, new TestedBean("coucou", 7, 8, null, set));
    assertTestIs("@Test"
            + "public void testmyMethod2ParamPrimitifResultPrimitif_"
            + nextTestId()
            + "() throws Exception {"
            + "//Call to tested method"

            + "Object[] inputParams_enter = new Object[]{"
            + "JsonSerialisationUtils.deserialize(\"{\\\"@type\\\":\\\"double\\\",\\\"value\\\":45.2}\"), "
            + "JsonSerialisationUtils.deserialize(\"{\\\"@type\\\":\\\"com.freeyourcode.testgenerator.test.TestedBean\\\",\\\"libelle\\\":\\\"coucou\\\",\\\"value\\\":7,\\\"valueObject\\\":8,\\\"set\\\":{\\\"@type\\\":\\\"java.util.HashSet\\\"}}\")};"
            + "Object[] inputParams_exit = new Object[]{"
            + "JsonSerialisationUtils.deserialize(\"{\\\"@type\\\":\\\"double\\\",\\\"value\\\":45.2}\"), "
            + "JsonSerialisationUtils.deserialize(\"{\\\"@type\\\":\\\"com.freeyourcode.testgenerator.test.TestedBean\\\",\\\"libelle\\\":\\\"coucou\\\",\\\"value\\\":7,\\\"valueObject\\\":8,\\\"set\\\":{\\\"@type\\\":\\\"java.util.HashSet\\\"}}\")};"
            + "Object testedMethodResult = testedClass.myMethod2ParamPrimitifResultPrimitif((Double)inputParams_enter[0], (TestedBean)inputParams_enter[1]);"
            + "assertEquals(JsonSerialisationUtils.deserialize(\"{\\\"@type\\\":\\\"double\\\",\\\"value\\\":90.4}\"), testedMethodResult);" + "assertEquals(inputParams_exit, inputParams_enter);" + "}");
}
项目:cacheonix-core    文件:SetType.java   
public PersistentCollection instantiate(SessionImplementor session, CollectionPersister persister, Serializable key) {
    if ( session.getEntityMode()==EntityMode.DOM4J ) {
        return new PersistentElementHolder(session, persister, key);
    }
    else {
        return new PersistentSet(session);
    }
}
项目:cacheonix-core    文件:SetType.java   
public PersistentCollection wrap(SessionImplementor session, Object collection) {
    if ( session.getEntityMode()==EntityMode.DOM4J ) {
        return new PersistentElementHolder( session, (Element) collection );
    }
    else {
        return new PersistentSet( session, (java.util.Set) collection );
    }
}
项目:projectforge-webapp    文件:HibernateCollectionConverter.java   
/**
 * @see com.thoughtworks.xstream.converters.Converter#marshal(java.lang.Object, com.thoughtworks.xstream.io.HierarchicalStreamWriter,
 *      com.thoughtworks.xstream.converters.MarshallingContext)
 */
public void marshal(Object source, HierarchicalStreamWriter writer, MarshallingContext context)
{
  Object collection = source;

  if (source instanceof PersistentCollection) {
    PersistentCollection col = (PersistentCollection) source;
    col.forceInitialization();
    // ToDo ES: collection = col.getCollectionSnapshot().getSnapshot();
    collection = col.getStoredSnapshot();
  }

  // the set is returned as a map by Hibernate (unclear why exactly)
  if (source instanceof PersistentSortedSet) {
    collection = new TreeSet(((HashMap) collection).values());
  } else if (source instanceof PersistentSet) {
    // collection = new HashSet(((HashMap)collection).entrySet());
    collection = new HashSet(((HashMap) collection).values());
  }

  // delegate the collection to the approapriate converter
  if (listSetConverter.canConvert(collection.getClass())) {
    listSetConverter.marshal(collection, writer, context);
    return;
  }
  if (mapConverter.canConvert(collection.getClass())) {
    mapConverter.marshal(collection, writer, context);
    return;
  }
  if (treeMapConverter.canConvert(collection.getClass())) {
    treeMapConverter.marshal(collection, writer, context);
    return;
  }
  if (treeSetConverter.canConvert(collection.getClass())) {
    treeSetConverter.marshal(collection, writer, context);
    return;
  }

  defaultConverter.marshal(collection, writer, context);
}
项目:projectforge-webapp    文件:HibernateMapper.java   
public void init()
{
  collectionMap.put(PersistentBag.class, ArrayList.class);
  collectionMap.put(PersistentList.class, ArrayList.class);
  collectionMap.put(PersistentMap.class, HashMap.class);
  collectionMap.put(PersistentSet.class, HashSet.class);
  collectionMap.put(PersistentSortedMap.class, TreeMap.class);
  collectionMap.put(PersistentSortedSet.class, TreeSet.class);
}
项目:cacheonix-core    文件:PersistentSetTest.java   
public void testWriteMethodDirtying() {
    Parent parent = new Parent( "p1" );
    Child child = new Child( "c1" );
    parent.getChildren().add( child );
    child.setParent( parent );
    Child otherChild = new Child( "c2" );

    Session session = openSession();
    session.beginTransaction();
    session.save( parent );
    session.flush();
    // at this point, the set on parent has now been replaced with a PersistentSet...
    PersistentSet children = ( PersistentSet ) parent.getChildren();

    assertFalse( children.add( child ) );
    assertFalse( children.isDirty() );

    assertFalse( children.remove( otherChild ) );
    assertFalse( children.isDirty() );

    HashSet otherSet = new HashSet();
    otherSet.add( child );
    assertFalse( children.addAll( otherSet ) );
    assertFalse( children.isDirty() );

    assertFalse( children.retainAll( otherSet ) );
    assertFalse( children.isDirty() );

    otherSet = new HashSet();
    otherSet.add( otherChild );
    assertFalse( children.removeAll( otherSet ) );
    assertFalse( children.isDirty() );

    assertTrue( children.retainAll( otherSet ));
    assertTrue( children.isDirty() );
    assertTrue( children.isEmpty() );

    children.clear();
    session.delete( child );
    assertTrue( children.isDirty() );

    session.flush();

    children.clear();
    assertFalse( children.isDirty() );

    session.delete( parent );
    session.getTransaction().commit();
    session.close();
}
项目:caarray    文件:CaArrayAuditLogInterceptor.java   
/**
 * {@inheritDoc}
 */
@Override
public void onCollectionUpdate(Object collection, Serializable key) {
    if (!(collection instanceof PersistentCollection)) {
        return;
    }

    PersistentCollection pc = (PersistentCollection) collection;
    Object owner = pc.getOwner();
    if (!(processor.isAuditableEntity(owner))) {
        return;
    }
    if (audits.get() == null) {
        audits.set(new HashSet<AuditLogHelper>());
    }

    String role = pc.getRole();

    Serializable oldSerial = pc.getStoredSnapshot();
    Object oldV = null;
    if (oldSerial != null && pc instanceof PersistentSet) {
        // PersistentSet seems to build a strange map where the key is also the value.
        oldV = ((Map) oldSerial).keySet();
    } else {
        oldV = oldSerial;
    }
    Object newV = pc.getValue();

    int idx = role.lastIndexOf('.');
    String className = role.substring(0, idx);
    String property = role.substring(idx + 1);
    Map<String, String> tabColMA = getColumnTableName(className, property);

    AuditLogRecord record = getOrCreateRecord(owner, key, className, tabColMA.get(TABLE_NAME), AuditType.UPDATE);
    Getter getter;
    try {
        getter = getIdGetter(Class.forName(className));
    } catch (ClassNotFoundException ex) {
        throw new HibernateException(ex);
    }
    AuditLogHelper helper = new AuditLogHelper(record, owner, getter);
    audits.get().add(helper);
    helper.getDetails().add(new DetailHelper(property, tabColMA.get(COLUMN_NAME), oldV, newV));
}
项目:replyit-master-3.2-final    文件:NotificationBL.java   
public Integer createUpdate(Integer entityId, MessageDTO dto) {

        set(dto.getTypeId(), dto.getLanguageId(), entityId);
        // it's just so easy to delete cascade and recreate ...:D
        if (messageRow != null) {
            messageDas.delete(messageRow);
        }

        messageRow = messageDas.create(dto.getTypeId(), entityId, dto
                .getLanguageId(), dto.getUseFlag());

        // add the sections with the lines to the message entity
        for (int f = 0; f < dto.getContent().length; f++) {
            MessageSection section = dto.getContent()[f];

            // create the section bean
            NotificationMessageSectionDTO sectionBean = messageSectionHome
                    .create(section.getSection());
            int index = 0;
            while (index < section.getContent().length()) {
                String line;
                if (index + MessageDTO.LINE_MAX.intValue() <= section
                        .getContent().length()) {
                    line = section.getContent().substring(index,
                            index + MessageDTO.LINE_MAX.intValue());
                } else {
                    line = section.getContent().substring(index);
                }
                index += MessageDTO.LINE_MAX.intValue();

                NotificationMessageLineDTO nml = messageLineHome.create(line);
                nml.setNotificationMessageSection(sectionBean);
                sectionBean.getNotificationMessageLines().add(nml);

            }
            sectionBean.setNotificationMessage(messageRow);

            messageRow.getNotificationMessageSections().add(sectionBean);

        }

        PersistentSet msjs = (PersistentSet) messageRow
                .getNotificationMessageSections();
        NotificationMessageSectionDTO nnnn = ((NotificationMessageSectionDTO) msjs
                .toArray()[0]);
        PersistentSet nm = (PersistentSet) nnnn.getNotificationMessageLines();

        messageRow.setIncludeAttachment(dto.getIncludeAttachment());
        messageRow.setAttachmentType(dto.getAttachmentType());
        messageRow.setAttachmentDesign(dto.getAttachmentDesign());

        messageRow.setNotifyAdmin(dto.getNotifyAdmin());
        messageRow.setNotifyPartner(dto.getNotifyPartner());
        messageRow.setNotifyParent(dto.getNotifyParent());
        messageRow.setNotifyAllParents(dto.getNotifyAllParents());

        messageDas.save(messageRow);

        return messageRow.getId();
    }