- if (content instanceof JcrContent) {
- Node context = ((JcrContent) content).getJcrNode();
- try {
- // mixins
- Set<String> types = new TreeSet<>();
- for (NodeType mixinType : context.getMixinNodeTypes()) {
- String mixinTypeName = mixinType.getName();
- if (byType.containsKey(mixinTypeName)) {
- types.add(mixinTypeName);
- }
- for (NodeType superType : mixinType.getDeclaredSupertypes()) {
- if (byType.containsKey(superType.getName())) {
- types.add(superType.getName());
- }
- }
- }
- // primary node type
- NodeType primaryType = context.getPrimaryNodeType();
- String primaryTypeName = primaryType.getName();
- if (byType.containsKey(primaryTypeName)) {
- types.add(primaryTypeName);
- }
- for (NodeType superType : primaryType.getDeclaredSupertypes()) {
- if (byType.containsKey(superType.getName())) {
- types.add(superType.getName());
- }
- }
- // entity type
- if (context.isNodeType(EntityType.entity.get())) {
- if (context.hasProperty(EntityNames.ENTITY_TYPE)) {
- String entityTypeName = context.getProperty(EntityNames.ENTITY_TYPE).getString();
- if (byType.containsKey(entityTypeName)) {
- types.add(entityTypeName);
- }
- }
- }
-
- if (CmsJcrUtils.isUserHome(context) && byType.containsKey("nt:folder")) {// home node
- types.add("nt:folder");
- }
-
- if (types.size() == 0)
- throw new IllegalArgumentException(
- "No type found for " + context + " (" + listTypes(context) + ")");
- String type = types.iterator().next();
- if (!byType.containsKey(type))
- throw new IllegalArgumentException("No component found for " + context + " with type " + type);
- return byType.get(type).get();
- } catch (RepositoryException e) {
- throw new IllegalStateException(e);
- }
-
- } else {
- List<QName> objectClasses = content.getContentClasses();
- Set<String> types = new TreeSet<>();
- for (QName cc : objectClasses) {
- String type = cc.getPrefix() + ":" + cc.getLocalPart();
- if (byType.containsKey(type))
- types.add(type);
- }
- if (types.size() == 0) {
- throw new IllegalArgumentException("No type found for " + content + " (" + objectClasses + ")");
- }
- String type = types.iterator().next();
- if (!byType.containsKey(type))
- throw new IllegalArgumentException("No component found for " + content + " with type " + type);
- return byType.get(type).get();
+// boolean checkJcr = false;
+// if (checkJcr && content instanceof JcrContent) {
+// Node context = ((JcrContent) content).getJcrNode();
+// try {
+// // mixins
+// Set<String> types = new TreeSet<>();
+// for (NodeType mixinType : context.getMixinNodeTypes()) {
+// String mixinTypeName = mixinType.getName();
+// if (byType.containsKey(mixinTypeName)) {
+// types.add(mixinTypeName);
+// }
+// for (NodeType superType : mixinType.getDeclaredSupertypes()) {
+// if (byType.containsKey(superType.getName())) {
+// types.add(superType.getName());
+// }
+// }
+// }
+// // primary node type
+// NodeType primaryType = context.getPrimaryNodeType();
+// String primaryTypeName = primaryType.getName();
+// if (byType.containsKey(primaryTypeName)) {
+// types.add(primaryTypeName);
+// }
+// for (NodeType superType : primaryType.getDeclaredSupertypes()) {
+// if (byType.containsKey(superType.getName())) {
+// types.add(superType.getName());
+// }
+// }
+// // entity type
+// if (context.isNodeType(EntityType.entity.get())) {
+// if (context.hasProperty(EntityNames.ENTITY_TYPE)) {
+// String entityTypeName = context.getProperty(EntityNames.ENTITY_TYPE).getString();
+// if (byType.containsKey(entityTypeName)) {
+// types.add(entityTypeName);
+// }
+// }
+// }
+//
+// if (CmsJcrUtils.isUserHome(context) && byType.containsKey("nt:folder")) {// home node
+// types.add("nt:folder");
+// }
+//
+// if (types.size() == 0)
+// throw new IllegalArgumentException(
+// "No type found for " + context + " (" + listTypes(context) + ")");
+// String type = types.iterator().next();
+// if (!byType.containsKey(type))
+// throw new IllegalArgumentException("No component found for " + context + " with type " + type);
+// return byType.get(type).get();
+// } catch (RepositoryException e) {
+// throw new IllegalStateException(e);
+// }
+//
+// } else {
+ Set<String> types = new TreeSet<>();
+ if (content.hasContentClass(EntityType.entity.qName())) {
+ String type = content.attr(EntityName.type.qName());
+ if (type != null && byType.containsKey(type))
+ types.add(type);