/** * Intended to be called only by {@link IsisSessionFactoryBuilder}. */ public static void setSessionFactory(final IsisSessionFactory sessionFactory) { if (IsisContext.sessionFactory != null) { throw new IsisException("SessionFactory already set up"); } IsisContext.sessionFactory = sessionFactory; }
@Override public void printStackTrace(final PrintStream s) { if (THROWABLE_SUPPORTS_CAUSE) { super.printStackTrace(s); } else { synchronized (s) { super.printStackTrace(s); final Throwable c = getCause(); if (c != null) { s.print("Root cause: "); c.printStackTrace(s); } } } }
/** * Remove an associated object (the element) from the specified * ObjectAdapter in the association field represented by this object. */ @Override public void remove(final ObjectAdapter inObject, final ObjectAdapter associate) { if (inObject.isPersistent()) { LOG.debug("clear association remotely " + inObject + "/" + associate); try { final IdentityData targetReference = encoder.encodeIdentityData(inObject); final IdentityData associateReference = encoder.encodeIdentityData(associate); final ClearAssociationRequest request = new ClearAssociationRequest(getAuthenticationSession(), name, targetReference, associateReference); final ClearAssociationResponse response = serverFacade.clearAssociation(request); final ObjectData[] updates = response.getUpdates(); encoder.decode(updates); } catch (final ConcurrencyException e) { throw ProxyUtil.concurrencyException(e); } catch (final IsisException e) { LOG.error("remote exception: " + e.getMessage(), e); throw e; } } else { LOG.debug("clear association locally " + inObject + "/" + associate); underlyingFacet.remove(inObject, associate); } }
@Override public void add(final ObjectAdapter inObject, final ObjectAdapter referencedAdapter) { if (inObject.isPersistent()) { try { final IdentityData targetReference = encoderDecoder.encodeIdentityData(inObject); final IdentityData associateReference = encoderDecoder.encodeIdentityData(referencedAdapter); final SetAssociationRequest request = new SetAssociationRequest(getAuthenticationSession(), name, targetReference, associateReference); final SetAssociationResponse response = serverFacade.setAssociation(request); final ObjectData[] updates = response.getUpdates(); encoderDecoder.decode(updates); } catch (final ConcurrencyException e) { throw ProxyUtil.concurrencyException(e); } catch (final IsisException e) { LOG.error("remote exception: " + e.getMessage(), e); throw e; } } else { underlyingFacet.add(inObject, referencedAdapter); } }
public PojoAdapter(final Object pojo, final Oid oid) { if (pojo instanceof ObjectAdapter) { throw new IsisException("Adapter can't be used to adapt an adapter: " + pojo); } this.pojo = pojo; this.oid = oid; resolveState = ResolveState.NEW; }
@Test public void testSetAssociationFailsWhenInvisible() { nameField.setUpIsVisible(false); try { final SetAssociationRequest request = new SetAssociationRequest(authenticationSession, "director", movieData, personData); server.setAssociation(request); fail(); } catch (final IsisException expected) { assertEquals("can't modify field as not visible or editable", expected.getMessage()); } }
@Override public void printStackTrace(final PrintWriter s) { if (THROWABLE_SUPPORTS_CAUSE) { super.printStackTrace(s); } else { synchronized (s) { super.printStackTrace(s); final Throwable c = getCause(); if (c != null) { s.println("Root cause: "); c.printStackTrace(s); } } } } }
public PojoAdapter( final Object pojo, final Oid oid, final AuthenticationSession authenticationSession, final SpecificationLoader specificationLoader, final PersistenceSession persistenceSession) { this.persistenceSession = persistenceSession; this.specificationLoader = specificationLoader; this.authenticationSession = authenticationSession; if (pojo instanceof ObjectAdapter) { throw new IsisException("Adapter can't be used to adapt an adapter: " + pojo); } this.pojo = pojo; this.oid = oid; } //endregion
@Test public void testSetAssociationFailsWhenUnavailable() { nameField.setUpIsUnusableFor(movieAdapter); try { final SetAssociationRequest request = new SetAssociationRequest(authenticationSession, "director", movieData, personData); server.setAssociation(request); fail(); } catch (final IsisException expected) { assertEquals("can't modify field as not visible or editable", expected.getMessage()); } }
@Override public void ensureEmpty() { if (warnings.size() > 0) { throw new IsisException("Message broker still has warnings"); } if (messages.size() > 0) { throw new IsisException("Message broker still has messages"); } }
@Test public void testSetAssociationFailsWhenUnavailable() { nameField.setUpIsUnusableFor(object); try { final SetValueRequest request = new SetValueRequest(session, "name", movieData, new DummyEncodeableObjectData("test data")); server.setValue(request); fail(); } catch (final IsisException expected) { assertEquals("can't modify field as not visible or editable", expected.getMessage()); } }
private void close(final BufferedReader reader) { if (reader != null) { try { reader.close(); } catch (final IOException e) { throw new IsisException(e); } } }
@Test public void testSetAssociationFailsWhenInvisible() { nameField.setUpIsVisible(false); try { final SetValueRequest request = new SetValueRequest(session, "name", movieData, new DummyEncodeableObjectData("name of movie")); server.setValue(request); fail(); } catch (final IsisException expected) { assertEquals("can't modify field as not visible or editable", expected.getMessage()); } }
@Override public void ensureEmpty() { if (changes.size() > 0) { throw new IsisException("Update notifier still has updates"); } }
public PerspectiveEntry getPerspective() { if (entry == null) { if (entries.size() == 0) { throw new IsisException("No perspective in user profile"); } else { entry = entries.get(0); } } return entry; }
@Override public void registerService(final String name, final Oid oid) { final Oid oidLookedUpByName = serviceOidByIdMap.get(name); if (oidLookedUpByName != null) { if (oidLookedUpByName.equals(oid)) { throw new IsisException("Already another service registered as name: " + name + " (existing Oid: " + oidLookedUpByName + ", " + "intended: " + oid + ")"); } } else { serviceOidByIdMap.put(name, oid); } }
@Override public void registerService(final ObjectSpecId objectSpecId, final Oid oid) { final Oid oidLookedUpByName = serviceOidByIdMap.get(objectSpecId); if (oidLookedUpByName != null) { if (oidLookedUpByName.equals(oid)) { throw new IsisException("Already another service registered as name: " + objectSpecId + " (existing Oid: " + oidLookedUpByName + ", " + "intended: " + oid + ")"); } } else { serviceOidByIdMap.put(objectSpecId, oid); } }
static Document parse(final String xmlStr) { try { final SAXReader saxReader = new SAXReader(); Document doc = saxReader.read(new StringReader(xmlStr)); return doc; } catch (DocumentException e) { throw new IsisException(e); } }
@Override public void registerService(final String name, final Oid oid) { final Oid oidLookedUpByName = serviceOidByIdMap.get(name); if (oidLookedUpByName != null) { if (!oidLookedUpByName.equals(oid)) { throw new IsisException("Already another service registered as name: " + name + " (existing Oid: " + oidLookedUpByName + ", " + "intended: " + oid + ")"); } } else { serviceOidByIdMap.put(name, oid); } }
public static String id(final Object object) { final Class<?> cls = object.getClass(); try { final Method m = cls.getMethod("getId", new Class[0]); return (String) m.invoke(object, new Object[0]); } catch (final SecurityException e) { throw new IsisException(e); } catch (final NoSuchMethodException e) { final String id = object.getClass().getName(); return id.substring(id.lastIndexOf('.') + 1); } catch (final IllegalArgumentException e) { throw new IsisException(e); } catch (final IllegalAccessException e) { throw new IsisException(e); } catch (final InvocationTargetException e) { throw new IsisException(e); } } }