You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2011/09/07 12:40:20 UTC
svn commit: r1166100 - in /incubator/isis/trunk/framework:
tck/tck-dom/src/main/java/org/apache/isis/tck/dom/
tck/tck-dom/src/main/java/org/apache/isis/tck/dom/actions/
tck/tck-dom/src/main/java/org/apache/isis/tck/dom/scalars/
tck/tck-dom/src/main/jav...
Author: danhaywood
Date: Wed Sep 7 10:40:19 2011
New Revision: 1166100
URL: http://svn.apache.org/viewvc?rev=1166100&view=rev
Log:
ISIS-109: starting back on the domain service/object repr
Added:
incubator/isis/trunk/framework/tck/tck-dom/src/main/java/org/apache/isis/tck/dom/AbstractEntityRepository.java
- copied, changed from r1165948, incubator/isis/trunk/framework/tck/tck-dom/src/main/java/org/apache/isis/tck/dom/scalars/AbstractValuedEntityRepository.java
incubator/isis/trunk/framework/tck/tck-dom/src/main/java/org/apache/isis/tck/dom/actions/
incubator/isis/trunk/framework/tck/tck-dom/src/main/java/org/apache/isis/tck/dom/simples/
incubator/isis/trunk/framework/tck/tck-dom/src/main/java/org/apache/isis/tck/dom/simples/SimpleEntity.java
incubator/isis/trunk/framework/tck/tck-dom/src/main/java/org/apache/isis/tck/dom/simples/SimpleEntityRepository.java
incubator/isis/trunk/framework/tck/tck-fixture/src/main/java/org/apache/isis/tck/fixture/simples/
incubator/isis/trunk/framework/tck/tck-fixture/src/main/java/org/apache/isis/tck/fixture/simples/SimpleEntityFixture.java
incubator/isis/trunk/framework/tck/tck-objstore-dflt/src/main/java/org/apache/isis/tck/objstore/dflt/simples/
incubator/isis/trunk/framework/tck/tck-objstore-dflt/src/main/java/org/apache/isis/tck/objstore/dflt/simples/SimpleEntityRepositoryDefault.java
incubator/isis/trunk/framework/viewer/json/json-tck/src/test/java/org/apache/isis/viewer/json/tck/DomainServiceResourceTest_service_serviceId.java
incubator/isis/trunk/framework/viewer/json/json-tck/src/test/java/org/apache/isis/viewer/json/tck/DomainServiceResourceTest_services.java
- copied, changed from r1165980, incubator/isis/trunk/framework/viewer/json/json-tck/src/test/java/org/apache/isis/viewer/json/tck/DomainServiceResourceTest.java
Modified:
incubator/isis/trunk/framework/tck/tck-dom/src/main/java/org/apache/isis/tck/dom/scalars/AbstractValuedEntityRepository.java
incubator/isis/trunk/framework/tck/tck-objstore-dflt/src/main/java/org/apache/isis/tck/objstore/dflt/scalars/ApplibValuedEntityRepositoryDefault.java
incubator/isis/trunk/framework/tck/tck-objstore-dflt/src/main/java/org/apache/isis/tck/objstore/dflt/scalars/JdkValuedEntityRepositoryDefault.java
incubator/isis/trunk/framework/tck/tck-objstore-dflt/src/main/java/org/apache/isis/tck/objstore/dflt/scalars/PrimitiveValuedEntityRepositoryDefault.java
incubator/isis/trunk/framework/tck/tck-objstore-dflt/src/main/java/org/apache/isis/tck/objstore/dflt/scalars/WrapperValuedEntityRepositoryDefault.java
incubator/isis/trunk/framework/viewer/json/json-applib/src/main/java/org/apache/isis/viewer/json/applib/domainobjects/DomainObjectRepresentation.java
incubator/isis/trunk/framework/viewer/json/json-applib/src/main/java/org/apache/isis/viewer/json/applib/domainobjects/DomainServiceResource.java
incubator/isis/trunk/framework/viewer/json/json-tck/src/main/webapp/WEB-INF/isis.properties
incubator/isis/trunk/framework/viewer/json/json-tck/src/test/java/org/apache/isis/viewer/json/tck/DomainServiceResourceTest.java
incubator/isis/trunk/framework/viewer/json/json-tck/src/test/java/org/apache/isis/viewer/json/tck/RepresentationMatchers.java
incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/representations/RepresentationBuilder.java
incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/AbstractMemberRepBuilder.java
incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/ActionRepBuilder.java
incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/CollectionRepBuilder.java
incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/DomainObjectRepBuilder.java
incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/MemberRepType.java
incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/MemberType.java
incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/PropertyRepBuilder.java
incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainservices/DomainServiceResourceServerside.java
Copied: incubator/isis/trunk/framework/tck/tck-dom/src/main/java/org/apache/isis/tck/dom/AbstractEntityRepository.java (from r1165948, incubator/isis/trunk/framework/tck/tck-dom/src/main/java/org/apache/isis/tck/dom/scalars/AbstractValuedEntityRepository.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/tck/tck-dom/src/main/java/org/apache/isis/tck/dom/AbstractEntityRepository.java?p2=incubator/isis/trunk/framework/tck/tck-dom/src/main/java/org/apache/isis/tck/dom/AbstractEntityRepository.java&p1=incubator/isis/trunk/framework/tck/tck-dom/src/main/java/org/apache/isis/tck/dom/scalars/AbstractValuedEntityRepository.java&r1=1165948&r2=1166100&rev=1166100&view=diff
==============================================================================
--- incubator/isis/trunk/framework/tck/tck-dom/src/main/java/org/apache/isis/tck/dom/scalars/AbstractValuedEntityRepository.java (original)
+++ incubator/isis/trunk/framework/tck/tck-dom/src/main/java/org/apache/isis/tck/dom/AbstractEntityRepository.java Wed Sep 7 10:40:19 2011
@@ -17,17 +17,17 @@
* under the License.
*/
-package org.apache.isis.tck.dom.scalars;
+package org.apache.isis.tck.dom;
import java.util.List;
import org.apache.isis.applib.AbstractFactoryAndRepository;
-public abstract class AbstractValuedEntityRepository<T> extends AbstractFactoryAndRepository {
+public abstract class AbstractEntityRepository<T> extends AbstractFactoryAndRepository {
private Class<T> cls;
- public AbstractValuedEntityRepository(Class<T> cls) {
+ public AbstractEntityRepository(Class<T> cls) {
super();
this.cls = cls;
}
Added: incubator/isis/trunk/framework/tck/tck-dom/src/main/java/org/apache/isis/tck/dom/simples/SimpleEntity.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/tck/tck-dom/src/main/java/org/apache/isis/tck/dom/simples/SimpleEntity.java?rev=1166100&view=auto
==============================================================================
--- incubator/isis/trunk/framework/tck/tck-dom/src/main/java/org/apache/isis/tck/dom/simples/SimpleEntity.java (added)
+++ incubator/isis/trunk/framework/tck/tck-dom/src/main/java/org/apache/isis/tck/dom/simples/SimpleEntity.java Wed Sep 7 10:40:19 2011
@@ -0,0 +1,55 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.isis.tck.dom.simples;
+
+import org.apache.isis.applib.AbstractDomainObject;
+import org.apache.isis.applib.annotation.MemberOrder;
+
+public class SimpleEntity extends AbstractDomainObject {
+
+ // {{ Name
+ private String name;
+
+ @MemberOrder(sequence = "1")
+ public String getName() {
+ return name;
+ }
+
+ public void setName(final String name) {
+ this.name = name;
+ }
+ // }}
+
+
+ // {{ Flag
+ private Boolean flag;
+
+ @MemberOrder(sequence = "1")
+ public Boolean getFlag() {
+ return flag;
+ }
+
+ public void setFlag(final Boolean flag) {
+ this.flag = flag;
+ }
+ // }}
+
+
+}
Added: incubator/isis/trunk/framework/tck/tck-dom/src/main/java/org/apache/isis/tck/dom/simples/SimpleEntityRepository.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/tck/tck-dom/src/main/java/org/apache/isis/tck/dom/simples/SimpleEntityRepository.java?rev=1166100&view=auto
==============================================================================
--- incubator/isis/trunk/framework/tck/tck-dom/src/main/java/org/apache/isis/tck/dom/simples/SimpleEntityRepository.java (added)
+++ incubator/isis/trunk/framework/tck/tck-dom/src/main/java/org/apache/isis/tck/dom/simples/SimpleEntityRepository.java Wed Sep 7 10:40:19 2011
@@ -0,0 +1,42 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.isis.tck.dom.simples;
+
+import java.util.List;
+
+import org.apache.isis.applib.annotation.MemberOrder;
+import org.apache.isis.applib.annotation.Named;
+
+@Named("Simples")
+public interface SimpleEntityRepository {
+
+ @MemberOrder(sequence="1")
+ public List<SimpleEntity> list();
+
+ @MemberOrder(sequence="2")
+ public SimpleEntity newTransientEntity();
+
+ @MemberOrder(sequence="2")
+ public SimpleEntity newPersistentEntity(
+ @Named("name") String name,
+ @Named("flag") Boolean flag);
+
+
+}
Added: incubator/isis/trunk/framework/tck/tck-fixture/src/main/java/org/apache/isis/tck/fixture/simples/SimpleEntityFixture.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/tck/tck-fixture/src/main/java/org/apache/isis/tck/fixture/simples/SimpleEntityFixture.java?rev=1166100&view=auto
==============================================================================
--- incubator/isis/trunk/framework/tck/tck-fixture/src/main/java/org/apache/isis/tck/fixture/simples/SimpleEntityFixture.java (added)
+++ incubator/isis/trunk/framework/tck/tck-fixture/src/main/java/org/apache/isis/tck/fixture/simples/SimpleEntityFixture.java Wed Sep 7 10:40:19 2011
@@ -0,0 +1,57 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+
+package org.apache.isis.tck.fixture.simples;
+
+import org.apache.isis.applib.fixtures.AbstractFixture;
+import org.apache.isis.tck.dom.scalars.WrapperValuedEntity;
+import org.apache.isis.tck.dom.scalars.WrapperValuedEntityRepository;
+import org.apache.isis.tck.dom.simples.SimpleEntity;
+import org.apache.isis.tck.dom.simples.SimpleEntityRepository;
+
+
+
+public class SimpleEntityFixture extends AbstractFixture {
+
+ @Override
+ public void install() {
+ createEntity("John", true);
+ createEntity("Mary", false);
+ createEntity("Bill", false);
+ createEntity("Sally", true);
+ createEntity("Diedre", true);
+ }
+
+ private SimpleEntity createEntity(String name, Boolean flag) {
+ return simpleEntityRepository.newPersistentEntity(name, flag);
+ }
+
+
+ // {{ injected: SimpleEntityRepository
+ private SimpleEntityRepository simpleEntityRepository;
+
+ public void setSimpleEntityRepository(final SimpleEntityRepository simpleEntityRepository) {
+ this.simpleEntityRepository = simpleEntityRepository;
+ }
+ // }}
+
+
+
+}
Modified: incubator/isis/trunk/framework/tck/tck-objstore-dflt/src/main/java/org/apache/isis/tck/objstore/dflt/scalars/ApplibValuedEntityRepositoryDefault.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/tck/tck-objstore-dflt/src/main/java/org/apache/isis/tck/objstore/dflt/scalars/ApplibValuedEntityRepositoryDefault.java?rev=1166100&r1=1166099&r2=1166100&view=diff
==============================================================================
--- incubator/isis/trunk/framework/tck/tck-objstore-dflt/src/main/java/org/apache/isis/tck/objstore/dflt/scalars/ApplibValuedEntityRepositoryDefault.java (original)
+++ incubator/isis/trunk/framework/tck/tck-objstore-dflt/src/main/java/org/apache/isis/tck/objstore/dflt/scalars/ApplibValuedEntityRepositoryDefault.java Wed Sep 7 10:40:19 2011
@@ -19,11 +19,11 @@
package org.apache.isis.tck.objstore.dflt.scalars;
-import org.apache.isis.tck.dom.scalars.AbstractValuedEntityRepository;
+import org.apache.isis.tck.dom.AbstractEntityRepository;
import org.apache.isis.tck.dom.scalars.ApplibValuedEntity;
import org.apache.isis.tck.dom.scalars.ApplibValuedEntityRepository;
-public class ApplibValuedEntityRepositoryDefault extends AbstractValuedEntityRepository<ApplibValuedEntity> implements ApplibValuedEntityRepository {
+public class ApplibValuedEntityRepositoryDefault extends AbstractEntityRepository<ApplibValuedEntity> implements ApplibValuedEntityRepository {
public ApplibValuedEntityRepositoryDefault() {
super(ApplibValuedEntity.class);
Modified: incubator/isis/trunk/framework/tck/tck-objstore-dflt/src/main/java/org/apache/isis/tck/objstore/dflt/scalars/JdkValuedEntityRepositoryDefault.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/tck/tck-objstore-dflt/src/main/java/org/apache/isis/tck/objstore/dflt/scalars/JdkValuedEntityRepositoryDefault.java?rev=1166100&r1=1166099&r2=1166100&view=diff
==============================================================================
--- incubator/isis/trunk/framework/tck/tck-objstore-dflt/src/main/java/org/apache/isis/tck/objstore/dflt/scalars/JdkValuedEntityRepositoryDefault.java (original)
+++ incubator/isis/trunk/framework/tck/tck-objstore-dflt/src/main/java/org/apache/isis/tck/objstore/dflt/scalars/JdkValuedEntityRepositoryDefault.java Wed Sep 7 10:40:19 2011
@@ -19,11 +19,11 @@
package org.apache.isis.tck.objstore.dflt.scalars;
-import org.apache.isis.tck.dom.scalars.AbstractValuedEntityRepository;
+import org.apache.isis.tck.dom.AbstractEntityRepository;
import org.apache.isis.tck.dom.scalars.JdkValuedEntity;
import org.apache.isis.tck.dom.scalars.JdkValuedEntityRepository;
-public class JdkValuedEntityRepositoryDefault extends AbstractValuedEntityRepository<JdkValuedEntity> implements JdkValuedEntityRepository {
+public class JdkValuedEntityRepositoryDefault extends AbstractEntityRepository<JdkValuedEntity> implements JdkValuedEntityRepository {
public JdkValuedEntityRepositoryDefault() {
super(JdkValuedEntity.class);
Modified: incubator/isis/trunk/framework/tck/tck-objstore-dflt/src/main/java/org/apache/isis/tck/objstore/dflt/scalars/PrimitiveValuedEntityRepositoryDefault.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/tck/tck-objstore-dflt/src/main/java/org/apache/isis/tck/objstore/dflt/scalars/PrimitiveValuedEntityRepositoryDefault.java?rev=1166100&r1=1166099&r2=1166100&view=diff
==============================================================================
--- incubator/isis/trunk/framework/tck/tck-objstore-dflt/src/main/java/org/apache/isis/tck/objstore/dflt/scalars/PrimitiveValuedEntityRepositoryDefault.java (original)
+++ incubator/isis/trunk/framework/tck/tck-objstore-dflt/src/main/java/org/apache/isis/tck/objstore/dflt/scalars/PrimitiveValuedEntityRepositoryDefault.java Wed Sep 7 10:40:19 2011
@@ -19,11 +19,11 @@
package org.apache.isis.tck.objstore.dflt.scalars;
-import org.apache.isis.tck.dom.scalars.AbstractValuedEntityRepository;
+import org.apache.isis.tck.dom.AbstractEntityRepository;
import org.apache.isis.tck.dom.scalars.PrimitiveValuedEntity;
import org.apache.isis.tck.dom.scalars.PrimitiveValuedEntityRepository;
-public class PrimitiveValuedEntityRepositoryDefault extends AbstractValuedEntityRepository<PrimitiveValuedEntity> implements PrimitiveValuedEntityRepository {
+public class PrimitiveValuedEntityRepositoryDefault extends AbstractEntityRepository<PrimitiveValuedEntity> implements PrimitiveValuedEntityRepository {
public PrimitiveValuedEntityRepositoryDefault() {
super(PrimitiveValuedEntity.class);
Modified: incubator/isis/trunk/framework/tck/tck-objstore-dflt/src/main/java/org/apache/isis/tck/objstore/dflt/scalars/WrapperValuedEntityRepositoryDefault.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/tck/tck-objstore-dflt/src/main/java/org/apache/isis/tck/objstore/dflt/scalars/WrapperValuedEntityRepositoryDefault.java?rev=1166100&r1=1166099&r2=1166100&view=diff
==============================================================================
--- incubator/isis/trunk/framework/tck/tck-objstore-dflt/src/main/java/org/apache/isis/tck/objstore/dflt/scalars/WrapperValuedEntityRepositoryDefault.java (original)
+++ incubator/isis/trunk/framework/tck/tck-objstore-dflt/src/main/java/org/apache/isis/tck/objstore/dflt/scalars/WrapperValuedEntityRepositoryDefault.java Wed Sep 7 10:40:19 2011
@@ -19,11 +19,11 @@
package org.apache.isis.tck.objstore.dflt.scalars;
-import org.apache.isis.tck.dom.scalars.AbstractValuedEntityRepository;
+import org.apache.isis.tck.dom.AbstractEntityRepository;
import org.apache.isis.tck.dom.scalars.WrapperValuedEntity;
import org.apache.isis.tck.dom.scalars.WrapperValuedEntityRepository;
-public class WrapperValuedEntityRepositoryDefault extends AbstractValuedEntityRepository<WrapperValuedEntity> implements WrapperValuedEntityRepository {
+public class WrapperValuedEntityRepositoryDefault extends AbstractEntityRepository<WrapperValuedEntity> implements WrapperValuedEntityRepository {
public WrapperValuedEntityRepositoryDefault() {
super(WrapperValuedEntity.class);
Added: incubator/isis/trunk/framework/tck/tck-objstore-dflt/src/main/java/org/apache/isis/tck/objstore/dflt/simples/SimpleEntityRepositoryDefault.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/tck/tck-objstore-dflt/src/main/java/org/apache/isis/tck/objstore/dflt/simples/SimpleEntityRepositoryDefault.java?rev=1166100&view=auto
==============================================================================
--- incubator/isis/trunk/framework/tck/tck-objstore-dflt/src/main/java/org/apache/isis/tck/objstore/dflt/simples/SimpleEntityRepositoryDefault.java (added)
+++ incubator/isis/trunk/framework/tck/tck-objstore-dflt/src/main/java/org/apache/isis/tck/objstore/dflt/simples/SimpleEntityRepositoryDefault.java Wed Sep 7 10:40:19 2011
@@ -0,0 +1,51 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.isis.tck.objstore.dflt.simples;
+
+import org.apache.isis.tck.dom.AbstractEntityRepository;
+import org.apache.isis.tck.dom.simples.SimpleEntity;
+import org.apache.isis.tck.dom.simples.SimpleEntityRepository;
+
+public class SimpleEntityRepositoryDefault extends AbstractEntityRepository<SimpleEntity> implements SimpleEntityRepository {
+
+ public SimpleEntityRepositoryDefault() {
+ super(SimpleEntity.class);
+ }
+
+ @Override
+ public String getId() {
+ return "simples";
+ }
+
+ @Override
+ public SimpleEntity newTransientEntity() {
+ return newTransientInstance(SimpleEntity.class);
+ }
+
+ @Override
+ public SimpleEntity newPersistentEntity(String name, Boolean flag) {
+ SimpleEntity entity = newTransientEntity();
+ entity.setName(name);
+ entity.setFlag(flag);
+ return entity;
+ }
+
+
+}
Modified: incubator/isis/trunk/framework/viewer/json/json-applib/src/main/java/org/apache/isis/viewer/json/applib/domainobjects/DomainObjectRepresentation.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/json/json-applib/src/main/java/org/apache/isis/viewer/json/applib/domainobjects/DomainObjectRepresentation.java?rev=1166100&r1=1166099&r2=1166100&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/json/json-applib/src/main/java/org/apache/isis/viewer/json/applib/domainobjects/DomainObjectRepresentation.java (original)
+++ incubator/isis/trunk/framework/viewer/json/json-applib/src/main/java/org/apache/isis/viewer/json/applib/domainobjects/DomainObjectRepresentation.java Wed Sep 7 10:40:19 2011
@@ -26,6 +26,10 @@ public class DomainObjectRepresentation
return getString("title");
}
+ public JsonRepresentation getMembers() {
+ return getArray("members");
+ }
+
/**
* Requires xom:xom:1.1 (LGPL) to be added as a dependency.
*/
@@ -40,7 +44,6 @@ public class DomainObjectRepresentation
return xpath("/*[memberType='action']");
}
-
public JsonRepresentation getLinks() {
return getArray("links");
@@ -49,4 +52,5 @@ public class DomainObjectRepresentation
return getMap("extensions");
}
+
}
Modified: incubator/isis/trunk/framework/viewer/json/json-applib/src/main/java/org/apache/isis/viewer/json/applib/domainobjects/DomainServiceResource.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/json/json-applib/src/main/java/org/apache/isis/viewer/json/applib/domainobjects/DomainServiceResource.java?rev=1166100&r1=1166099&r2=1166100&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/json/json-applib/src/main/java/org/apache/isis/viewer/json/applib/domainobjects/DomainServiceResource.java (original)
+++ incubator/isis/trunk/framework/viewer/json/json-applib/src/main/java/org/apache/isis/viewer/json/applib/domainobjects/DomainServiceResource.java Wed Sep 7 10:40:19 2011
@@ -50,7 +50,7 @@ public interface DomainServiceResource {
@Path("/{serviceId}")
@Produces({ MediaType.APPLICATION_JSON })
@ClientResponseType(entityType=String.class)
- public Response service(@PathParam("serviceid") final String serviceId);
+ public Response service(@PathParam("serviceId") final String serviceId);
////////////////////////////////////////////////////////////
Modified: incubator/isis/trunk/framework/viewer/json/json-tck/src/main/webapp/WEB-INF/isis.properties
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/json/json-tck/src/main/webapp/WEB-INF/isis.properties?rev=1166100&r1=1166099&r2=1166100&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/json/json-tck/src/main/webapp/WEB-INF/isis.properties (original)
+++ incubator/isis/trunk/framework/viewer/json/json-tck/src/main/webapp/WEB-INF/isis.properties Wed Sep 7 10:40:19 2011
@@ -19,7 +19,8 @@ isis.services =\
scalars.ApplibValuedEntityRepositoryDefault,\
scalars.JdkValuedEntityRepositoryDefault,\
scalars.PrimitiveValuedEntityRepositoryDefault,\
- scalars.WrapperValuedEntityRepositoryDefault
+ scalars.WrapperValuedEntityRepositoryDefault, \
+ simples.SimpleEntityRepositoryDefault
isis.fixtures.prefix= org.apache.isis.tck.fixture
isis.fixtures=\
@@ -27,7 +28,8 @@ isis.fixtures=\
scalars.ApplibValuedEntityFixture,\
scalars.JdkValuedEntityFixture,\
scalars.PrimitiveValuedEntityFixture,\
- scalars.WrapperValuedEntityFixture
+ scalars.WrapperValuedEntityFixture,\
+ simples.SimpleEntityFixture\
isis.reflector.class-substitutor=org.apache.isis.runtimes.dflt.bytecode.dflt.classsubstitutor.CglibClassSubstitutor
Added: incubator/isis/trunk/framework/viewer/json/json-tck/src/test/java/org/apache/isis/viewer/json/tck/DomainServiceResourceTest_service_serviceId.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/json/json-tck/src/test/java/org/apache/isis/viewer/json/tck/DomainServiceResourceTest_service_serviceId.java?rev=1166100&view=auto
==============================================================================
--- incubator/isis/trunk/framework/viewer/json/json-tck/src/test/java/org/apache/isis/viewer/json/tck/DomainServiceResourceTest_service_serviceId.java (added)
+++ incubator/isis/trunk/framework/viewer/json/json-tck/src/test/java/org/apache/isis/viewer/json/tck/DomainServiceResourceTest_service_serviceId.java Wed Sep 7 10:40:19 2011
@@ -0,0 +1,126 @@
+package org.apache.isis.viewer.json.tck;
+
+import static org.apache.isis.viewer.json.tck.RepresentationMatchers.assertThat;
+import static org.apache.isis.viewer.json.tck.RepresentationMatchers.isArray;
+import static org.apache.isis.viewer.json.tck.RepresentationMatchers.isFollowableLinkToSelf;
+import static org.apache.isis.viewer.json.tck.RepresentationMatchers.isLink;
+import static org.apache.isis.viewer.json.tck.RepresentationMatchers.isMap;
+import static org.apache.isis.core.commons.matchers.IsisMatchers.*;
+
+import static org.hamcrest.CoreMatchers.*;
+import static org.junit.Assert.assertThat;
+
+import java.io.IOException;
+
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+import javax.ws.rs.core.Response.Status.Family;
+
+import org.apache.isis.runtimes.dflt.webserver.WebServer;
+import org.apache.isis.viewer.json.applib.HttpStatusCode;
+import org.apache.isis.viewer.json.applib.JsonRepresentation;
+import org.apache.isis.viewer.json.applib.RepresentationType;
+import org.apache.isis.viewer.json.applib.RestfulClient;
+import org.apache.isis.viewer.json.applib.RestfulResponse;
+import org.apache.isis.viewer.json.applib.blocks.Link;
+import org.apache.isis.viewer.json.applib.blocks.Method;
+import org.apache.isis.viewer.json.applib.domainobjects.DomainObjectRepresentation;
+import org.apache.isis.viewer.json.applib.domainobjects.DomainServiceResource;
+import org.apache.isis.viewer.json.applib.domainobjects.DomainServicesRepresentation;
+import org.codehaus.jackson.JsonParseException;
+import org.codehaus.jackson.map.JsonMappingException;
+import org.hamcrest.CoreMatchers;
+import org.hamcrest.Matchers;
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Rule;
+import org.junit.Test;
+
+
+public class DomainServiceResourceTest_service_serviceId {
+
+ @Rule
+ public IsisWebServerRule webServerRule = new IsisWebServerRule();
+
+ private RestfulClient client;
+ private DomainServiceResource resource;
+
+ @Before
+ public void setUp() throws Exception {
+ WebServer webServer = webServerRule.getWebServer();
+ client = new RestfulClient(webServer.getBase());
+
+ resource = client.getDomainServiceResource();
+ }
+
+
+ @Test
+ public void representation() throws Exception {
+
+ // given
+ Response resp = resource.service("simples");
+
+ // when
+ RestfulResponse<DomainObjectRepresentation> jsonResp = RestfulResponse.of(resp, DomainObjectRepresentation.class);
+
+
+
+ // then
+ assertThat(jsonResp.getStatus(), is(HttpStatusCode.OK));
+ assertThat(jsonResp.getHeader(RestfulResponse.Header.MEDIA_TYPE), is(MediaType.APPLICATION_JSON_TYPE));
+ assertThat(jsonResp.getHeader(RestfulResponse.Header.CACHE_CONTROL).isNoCache(), is(true));
+ assertThat(jsonResp.getHeader(RestfulResponse.Header.X_REPRESENTATION_TYPE), is(RepresentationType.DOMAIN_OBJECT));
+
+ DomainObjectRepresentation repr = jsonResp.getEntity();
+
+ assertThat(repr, isMap());
+
+ assertThat(repr.getSelf(), isLink().method(Method.GET));
+ assertThat(repr.getOid(), matches("OID[:].+"));
+ assertThat(repr.getTitle(), matches("Simples"));
+
+ assertThat(repr.getMembers(), isArray());
+
+ assertThat(repr.getLinks(), isArray());
+ assertThat(repr.getExtensions(), isMap());
+ }
+
+
+ @Test
+ public void linksToSelf() throws Exception {
+ // given
+ DomainObjectRepresentation repr = givenRepresentation("simples");
+
+ // when, then
+ assertThat(repr, isFollowableLinkToSelf(client));
+ }
+
+
+ @Ignore("up to here")
+ @Test
+ public void linksToDomainServiceResources() throws Exception {
+
+ // given
+ DomainObjectRepresentation repr = givenRepresentation("simples");
+
+ }
+
+ @Test
+ public void notFound() throws Exception {
+
+ // when
+ Response resp = resource.service("nonExistentServiceId");
+ RestfulResponse<DomainObjectRepresentation> jsonResp = RestfulResponse.of(resp, DomainObjectRepresentation.class);
+
+ // then
+ assertThat(jsonResp.getStatus(), is(HttpStatusCode.NOT_FOUND));
+ }
+
+
+ private DomainObjectRepresentation givenRepresentation(String serviceId) throws JsonParseException, JsonMappingException, IOException {
+ return RepresentationMatchers.entityOf(resource.service(serviceId), DomainObjectRepresentation.class);
+ }
+
+
+}
+
\ No newline at end of file
Copied: incubator/isis/trunk/framework/viewer/json/json-tck/src/test/java/org/apache/isis/viewer/json/tck/DomainServiceResourceTest_services.java (from r1165980, incubator/isis/trunk/framework/viewer/json/json-tck/src/test/java/org/apache/isis/viewer/json/tck/DomainServiceResourceTest.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/json/json-tck/src/test/java/org/apache/isis/viewer/json/tck/DomainServiceResourceTest_services.java?p2=incubator/isis/trunk/framework/viewer/json/json-tck/src/test/java/org/apache/isis/viewer/json/tck/DomainServiceResourceTest_services.java&p1=incubator/isis/trunk/framework/viewer/json/json-tck/src/test/java/org/apache/isis/viewer/json/tck/DomainServiceResourceTest.java&r1=1165980&r2=1166100&rev=1166100&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/json/json-tck/src/test/java/org/apache/isis/viewer/json/tck/DomainServiceResourceTest.java (original)
+++ incubator/isis/trunk/framework/viewer/json/json-tck/src/test/java/org/apache/isis/viewer/json/tck/DomainServiceResourceTest_services.java Wed Sep 7 10:40:19 2011
@@ -1,13 +1,10 @@
package org.apache.isis.viewer.json.tck;
-import static org.apache.isis.core.commons.matchers.IsisMatchers.greaterThan;
-import static org.apache.isis.core.commons.matchers.IsisMatchers.matches;
import static org.apache.isis.viewer.json.tck.RepresentationMatchers.assertThat;
import static org.apache.isis.viewer.json.tck.RepresentationMatchers.isArray;
import static org.apache.isis.viewer.json.tck.RepresentationMatchers.isFollowableLinkToSelf;
import static org.apache.isis.viewer.json.tck.RepresentationMatchers.isLink;
import static org.apache.isis.viewer.json.tck.RepresentationMatchers.isMap;
-import static org.hamcrest.CoreMatchers.*;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
@@ -25,18 +22,16 @@ import org.apache.isis.viewer.json.appli
import org.apache.isis.viewer.json.applib.RestfulResponse;
import org.apache.isis.viewer.json.applib.blocks.Link;
import org.apache.isis.viewer.json.applib.blocks.Method;
-import org.apache.isis.viewer.json.applib.domainobjects.DomainObjectRepresentation;
import org.apache.isis.viewer.json.applib.domainobjects.DomainServiceResource;
import org.apache.isis.viewer.json.applib.domainobjects.DomainServicesRepresentation;
import org.codehaus.jackson.JsonParseException;
import org.codehaus.jackson.map.JsonMappingException;
import org.junit.Before;
-import org.junit.Ignore;
import org.junit.Rule;
import org.junit.Test;
-public class DomainServiceResourceTest {
+public class DomainServiceResourceTest_services {
@Rule
public IsisWebServerRule webServerRule = new IsisWebServerRule();
@@ -82,10 +77,10 @@ public class DomainServiceResourceTest {
@Test
public void linksToSelf() throws Exception {
// given
- DomainServicesRepresentation servicesRepr = givenRepresentation();
+ DomainServicesRepresentation repr = givenRepresentation();
// when, then
- assertThat(servicesRepr, isFollowableLinkToSelf(client));
+ assertThat(repr, isFollowableLinkToSelf(client));
}
@@ -94,8 +89,11 @@ public class DomainServiceResourceTest {
// given
DomainServicesRepresentation repr = givenRepresentation();
-
+
+ // when
JsonRepresentation values = repr.getValues();
+
+ // then
for (Link link : values.arrayIterable(Link.class)) {
Response followResp = client.follow(link);
RestfulResponse<JsonRepresentation> followJsonResp = RestfulResponse.of(followResp, JsonRepresentation.class);
Modified: incubator/isis/trunk/framework/viewer/json/json-tck/src/test/java/org/apache/isis/viewer/json/tck/RepresentationMatchers.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/json/json-tck/src/test/java/org/apache/isis/viewer/json/tck/RepresentationMatchers.java?rev=1166100&r1=1166099&r2=1166100&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/json/json-tck/src/test/java/org/apache/isis/viewer/json/tck/RepresentationMatchers.java (original)
+++ incubator/isis/trunk/framework/viewer/json/json-tck/src/test/java/org/apache/isis/viewer/json/tck/RepresentationMatchers.java Wed Sep 7 10:40:19 2011
@@ -27,6 +27,22 @@ public class RepresentationMatchers {
}
+// public static Matcher<String> matchers(final Method method) {
+// return new TypeSafeMatcher<Link>() {
+//
+// @Override
+// public void describeTo(Description description) {
+// description.appendText("link with method " + method.name());
+// }
+//
+// @Override
+// public boolean matchesSafely(Link item) {
+// return item != null && item.getMethod() == method;
+// }
+// };
+// }
+
+
public static <T extends JsonRepresentation> Matcher<T> isMap() {
return new TypeSafeMatcher<T>() {
@@ -57,6 +73,21 @@ public class RepresentationMatchers {
};
}
+ public static <T extends JsonRepresentation> Matcher<T> isString() {
+ return new TypeSafeMatcher<T>() {
+
+ @Override
+ public void describeTo(Description description) {
+ description.appendText("string");
+ }
+
+ @Override
+ public boolean matchesSafely(T item) {
+ return item != null && item.isValue() && item.getJsonNode().isTextual();
+ }
+ };
+ }
+
public static Matcher<Link> isLink(final Method method) {
return new TypeSafeMatcher<Link>() {
Modified: incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/representations/RepresentationBuilder.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/representations/RepresentationBuilder.java?rev=1166100&r1=1166099&r2=1166100&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/representations/RepresentationBuilder.java (original)
+++ incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/representations/RepresentationBuilder.java Wed Sep 7 10:40:19 2011
@@ -37,7 +37,7 @@ public abstract class RepresentationBuil
public T withSelf(String href) {
representation.put("self", LinkBuilder.newBuilder(resourceContext, "self", href).build());
- return asT(this);
+ return cast(this);
}
public RepresentationBuilder<T> withLinks() {
@@ -49,7 +49,7 @@ public abstract class RepresentationBuil
throw new IllegalArgumentException("links must be a list");
}
representation.put("links", links);
- return asT(this);
+ return cast(this);
}
public T withExtensions() {
@@ -61,11 +61,11 @@ public abstract class RepresentationBuil
throw new IllegalArgumentException("extensions must be a map");
}
representation.put("extensions", extensions);
- return asT(this);
+ return cast(this);
}
@SuppressWarnings("unchecked")
- private static <T extends RepresentationBuilder<T>> T asT(RepresentationBuilder<T> builder) {
+ protected static <T extends RepresentationBuilder<T>> T cast(RepresentationBuilder<T> builder) {
return (T) builder;
}
Modified: incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/AbstractMemberRepBuilder.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/AbstractMemberRepBuilder.java?rev=1166100&r1=1166099&r2=1166100&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/AbstractMemberRepBuilder.java (original)
+++ incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/AbstractMemberRepBuilder.java Wed Sep 7 10:40:19 2011
@@ -42,34 +42,25 @@ public abstract class AbstractMemberRepB
this.objectMember = objectMember;
}
- protected void putSelfIfRequired(MemberRepType memberRepType) {
- if(!memberRepType.isStandalone()) {
- return;
- }
-
- JsonRepresentation selfRep = JsonRepresentation.newMap();
+ public R withSelf() {
String url = AbstractMemberRepBuilder.urlForMember(objectAdapter, memberType, objectMember, getOidStringifier());
- JsonRepresentation memberLinkRep = LinkBuilder.newBuilder(resourceContext, "member", url).build();
- selfRep.put("link", memberLinkRep);
+ JsonRepresentation self = LinkBuilder.newBuilder(resourceContext, "self", url).build();
+ representation.put("self", self);
- JsonRepresentation linkTo = DomainObjectRepBuilder.newLinkToBuilder(resourceContext, "object", objectAdapter, getOidStringifier()).build();
- selfRep.put("object", linkTo);
-
- representation.put("self", selfRep);
+ return cast(this);
}
- public R withMemberType() {
+ protected void putMemberType() {
representation.put("memberType", memberType.name().toLowerCase());
- return (R) this;
}
- protected void putIdRep() {
+ protected void putId() {
representation.put(memberType.key(), objectMember.getId());
}
- protected void putMutatorsIfRequired(MemberRepType memberRepType) {
- if(!memberRepType.isStandalone() || usability().isVetoed()) {
- return;
+ public R withMutatorsIfEnabled() {
+ if(!usability().isVetoed()) {
+ return cast(this);
}
Map<String, MutatorSpec> mutators = memberType.getMutators();
for(String mutator: mutators.keySet()) {
@@ -85,6 +76,7 @@ public abstract class AbstractMemberRepB
representation.put(mutator, detailsLink);
}
}
+ return cast(this);
}
private JsonRepresentation mutatorArgs(MutatorSpec mutatorSpec) {
@@ -103,12 +95,9 @@ public abstract class AbstractMemberRepB
}
- protected void putValueIfRequired(MemberRepType memberRepType) {
- if(!memberRepType.hasValueFor(memberType)) {
- return;
- }
+ protected R withValue() {
representation.put("value", valueRep());
- return;
+ return cast(this);
}
/**
@@ -118,18 +107,17 @@ public abstract class AbstractMemberRepB
return null;
}
- protected final void putDisabledReason() {
+ protected final void putDisabledReasonIfDisabled() {
String disabledReasonRep = usability().getReason();
representation.put("disabledReason", disabledReasonRep);
}
- protected void putDetailsIfRequired(MemberRepType memberRepType) {
- if(!memberRepType.isInline()) {
- return;
- }
+ public R withDetails() {
String urlForMember = urlForMember();
JsonRepresentation detailsLink = LinkBuilder.newBuilder(resourceContext, memberType.name().toLowerCase(), urlForMember).build();
- representation.put("details", detailsLink);
+ representation.put(memberType.getDetailsRel(), detailsLink);
+
+ return cast(this);
}
/**
Modified: incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/ActionRepBuilder.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/ActionRepBuilder.java?rev=1166100&r1=1166099&r2=1166100&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/ActionRepBuilder.java (original)
+++ incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/ActionRepBuilder.java Wed Sep 7 10:40:19 2011
@@ -35,34 +35,43 @@ public class ActionRepBuilder extends Ab
protected ActionRepBuilder(ResourceContext resourceContext, ObjectAdapter objectAdapter, ObjectAction objectAction) {
super(resourceContext, objectAdapter, MemberType.ACTION, objectAction);
- MemberRepType memberRepType = MemberRepType.STANDALONE;
- putSelfIfRequired(memberRepType);
- putContributedByIfRequired();
- putIdRep();
- withMemberType();
- representation.put("actionType", objectMember.getType());
+ putId();
+ putMemberType();
+ putNumParameters();
+
+ putDisabledReasonIfDisabled();
+ withMutatorsIfEnabled();
+
+ putExtensionsForAction();
+ putLinksForAction(resourceContext);
+ }
+
+ private void putLinksForAction(ResourceContext resourceContext) {
+ JsonRepresentation links = JsonRepresentation.newArray();
+ if(objectMember.isContributed()) {
+ ObjectAdapter serviceAdapter = contributingServiceAdapter();
+ JsonRepresentation contributedByLink = DomainObjectRepBuilder.newLinkToBuilder(resourceContext, "object", serviceAdapter, getOidStringifier()).build();
+ links.put("contributedBy", contributedByLink);
+ }
+
+ withLinks(links);
+ }
+
+ private void putExtensionsForAction() {
+ JsonRepresentation extensions = JsonRepresentation.newMap();
+ extensions.put("actionType", objectMember.getType());
+ withExtensions(extensions );
+ }
+
+ protected void putNumParameters() {
representation.put("numParameters", objectMember.getParameterCount());
- putParameterDetailsIfRequired(memberRepType);
- putValueIfRequired(memberRepType);
- putDisabledReason();
- putMutatorsIfRequired(memberRepType);
- putDetailsIfRequired(memberRepType);
}
public JsonRepresentation build() {
return representation;
}
- private void putContributedByIfRequired() {
- if(!objectMember.isContributed()) {
- return;
- }
- ObjectAdapter serviceAdapter = contributingServiceAdapter();
- JsonRepresentation contributedByLink = DomainObjectRepBuilder.newLinkToBuilder(resourceContext, "object", serviceAdapter, getOidStringifier()).build();
- representation.put("contributedBy", contributedByLink);
- }
-
private ObjectAdapter contributingServiceAdapter() {
ObjectSpecification serviceType = objectMember.getOnType();
List<ObjectAdapter> serviceAdapters = getPersistenceSession().getServices();
@@ -75,16 +84,14 @@ public class ActionRepBuilder extends Ab
throw new IllegalStateException("Unable to locate contributing service");
}
- private void putParameterDetailsIfRequired(MemberRepType memberRepType) {
- if (!memberRepType.isStandalone()) {
- return;
- }
+ public ActionRepBuilder withParameterDetails() {
List<Object> parameters = Lists.newArrayList();
for (int i=0; i< objectMember.getParameterCount(); i++) {
ObjectActionParameter param = objectMember.getParameters().get(i);
parameters.add(paramDetails(param));
}
representation.put("parameters", parameters);
+ return this;
}
private Object paramDetails(ObjectActionParameter param) {
Modified: incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/CollectionRepBuilder.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/CollectionRepBuilder.java?rev=1166100&r1=1166099&r2=1166100&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/CollectionRepBuilder.java (original)
+++ incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/CollectionRepBuilder.java Wed Sep 7 10:40:19 2011
@@ -37,15 +37,12 @@ public class CollectionRepBuilder extend
public CollectionRepBuilder(ResourceContext resourceContext, ObjectAdapter objectAdapter, OneToManyAssociation otma) {
super(resourceContext, objectAdapter, MemberType.COLLECTION, otma);
- MemberRepType memberRepType = MemberRepType.STANDALONE;
-
- putSelfIfRequired(memberRepType);
- putIdRep();
- withMemberType();
- putValueIfRequired(memberRepType);
- putDisabledReason();
- putMutatorsIfRequired(memberRepType);
- putDetailsIfRequired(memberRepType);
+ putId();
+ putMemberType();
+ putDisabledReasonIfDisabled();
+
+ withLinks();
+ withExtensions();
}
public JsonRepresentation build() {
Modified: incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/DomainObjectRepBuilder.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/DomainObjectRepBuilder.java?rev=1166100&r1=1166099&r2=1166100&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/DomainObjectRepBuilder.java (original)
+++ incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/DomainObjectRepBuilder.java Wed Sep 7 10:40:19 2011
@@ -70,7 +70,7 @@ public class DomainObjectRepBuilder exte
private DomainObjectRepBuilder withMembers(ObjectAdapter objectAdapter) {
JsonRepresentation members = JsonRepresentation.newArray();
List<ObjectAssociation> associations = objectAdapter.getSpecification().getAssociations();
- addPropertiesAndCollections(objectAdapter, members, associations);
+ addAssociations(objectAdapter, members, associations);
List<ObjectAction> actions = objectAdapter.getSpecification().getObjectActions(Contributed.INCLUDED);
addActions(objectAdapter, actions, members);
@@ -78,7 +78,7 @@ public class DomainObjectRepBuilder exte
return this;
}
- private void addPropertiesAndCollections(ObjectAdapter objectAdapter, JsonRepresentation members, List<ObjectAssociation> associations) {
+ private void addAssociations(ObjectAdapter objectAdapter, JsonRepresentation members, List<ObjectAssociation> associations) {
for (ObjectAssociation assoc : associations) {
Consent visibility = assoc.isVisible(getSession(), objectAdapter);
if(!visibility.isAllowed()) {
Modified: incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/MemberType.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/MemberType.java?rev=1166100&r1=1166099&r2=1166100&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/MemberType.java (original)
+++ incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/MemberType.java Wed Sep 7 10:40:19 2011
@@ -36,7 +36,7 @@ import com.google.common.collect.Immutab
public enum MemberType {
- PROPERTY("properties/", ImmutableMap.of(
+ PROPERTY("properties/", "propertyDetails", ImmutableMap.of(
"modify", MutatorSpec.of(PropertyValidateFacet.class, PropertySetterFacet.class, HttpMethod.PUT, BodyArgs.ONE),
"clear", MutatorSpec.of(PropertyValidateFacet.class, PropertyClearFacet.class, HttpMethod.DELETE, BodyArgs.NONE)
)) {
@@ -45,7 +45,7 @@ public enum MemberType {
return objectMember.getSpecification();
}
},
- COLLECTION("collections/", ImmutableMap.of(
+ COLLECTION("collections/", "collectionDetails", ImmutableMap.of(
"addTo", MutatorSpec.of(CollectionValidateAddToFacet.class, CollectionAddToFacet.class, HttpMethod.PUT, BodyArgs.ONE),
"removeFrom", MutatorSpec.of(CollectionValidateRemoveFromFacet.class, CollectionRemoveFromFacet.class, HttpMethod.DELETE, BodyArgs.ONE)
)) {
@@ -54,7 +54,7 @@ public enum MemberType {
return objectMember.getSpecification();
}
},
- ACTION("actions/", ImmutableMap.of(
+ ACTION("actions/", "actionDetails", ImmutableMap.of(
"invoke", MutatorSpec.of(ActionValidationFacet.class, ActionInvocationFacet.class, HttpMethod.POST, BodyArgs.MANY, "invoke")
)) {
@Override
@@ -67,8 +67,11 @@ public enum MemberType {
private final Map<String, MutatorSpec> mutators;
private final String urlPart;
- private MemberType(String urlPart, Map<String, MutatorSpec> mutators) {
+ private final String detailsRel;
+
+ private MemberType(String urlPart, String detailsRel, Map<String, MutatorSpec> mutators) {
this.urlPart = urlPart;
+ this.detailsRel = detailsRel;
this.mutators = mutators;
}
@@ -110,4 +113,8 @@ public enum MemberType {
COLLECTION;
}
+ public String getDetailsRel() {
+ return detailsRel;
+ }
+
}
Modified: incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/PropertyRepBuilder.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/PropertyRepBuilder.java?rev=1166100&r1=1166099&r2=1166100&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/PropertyRepBuilder.java (original)
+++ incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/PropertyRepBuilder.java Wed Sep 7 10:40:19 2011
@@ -35,16 +35,12 @@ public class PropertyRepBuilder extends
public PropertyRepBuilder(ResourceContext resourceContext, ObjectAdapter objectAdapter, OneToOneAssociation otoa) {
super(resourceContext, objectAdapter, MemberType.PROPERTY, otoa);
- MemberRepType memberRepType = MemberRepType.STANDALONE;
-
- putSelfIfRequired(memberRepType);
- putIdRep();
- withMemberType();
- putValueIfRequired(memberRepType);
- putDisabledReason();
- putChoices();
- putMutatorsIfRequired(memberRepType);
- putDetailsIfRequired(memberRepType);
+ putId();
+ putMemberType();
+ putDisabledReasonIfDisabled();
+
+ withLinks();
+ withExtensions();
}
public JsonRepresentation build() {
@@ -61,11 +57,12 @@ public class PropertyRepBuilder extends
return DomainObjectRepBuilder.valueOrRef(resourceContext, valueAdapter, objectMember.getSpecification(), getOidStringifier(), getLocalization());
}
- private void putChoices() {
+ public PropertyRepBuilder withChoices() {
Object propertyChoices = propertyChoices();
if(propertyChoices != null) {
representation.put("choices", propertyChoices);
}
+ return this;
}
private Object propertyChoices() {
Modified: incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainservices/DomainServiceResourceServerside.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainservices/DomainServiceResourceServerside.java?rev=1166100&r1=1166099&r2=1166100&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainservices/DomainServiceResourceServerside.java (original)
+++ incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainservices/DomainServiceResourceServerside.java Wed Sep 7 10:40:19 2011
@@ -41,6 +41,7 @@ import org.apache.isis.viewer.json.viewe
import org.apache.isis.viewer.json.viewer.resources.ResourceAbstract;
import org.apache.isis.viewer.json.viewer.resources.domainobjects.DomainObjectListRepBuilder;
import org.apache.isis.viewer.json.viewer.resources.domainobjects.DomainObjectRepBuilder;
+import org.jboss.resteasy.annotations.ClientResponseType;
@Path("/services")
public class DomainServiceResourceServerside extends ResourceAbstract implements