/** * Return the IdBinder for this type. */ public IdBinder getIdBinder() { return descriptor.getIdBinder(); }
@Override public void addSql(SpiExpressionRequest request) { DefaultExpressionRequest r = (DefaultExpressionRequest) request; BeanDescriptor<?> descriptor = r.getBeanDescriptor(); IdBinder idBinder = descriptor.getIdBinder(); if (idCollection.isEmpty()) { request.append("1=0"); // append false for this stage } else { request.append(descriptor.getIdBinderInLHSSql()); String inClause = idBinder.getIdInValueExpr(false, idCollection.size()); request.append(inClause); } }
@Override public IdBinder getIdBinder() { return descriptor.getIdBinder(); }
/** * Return the Id expression to add to where clause etc. */ @Override public String getAssocIdExpression(String prefix, String operator) { return targetDescriptor.getIdBinder().getAssocOneIdExpr(prefix, operator); }
/** * Return the logical id value expression taking into account embedded id's. */ @Override public String getAssocIdInValueExpr(boolean not, int size) { return targetDescriptor.getIdBinder().getIdInValueExpr(not, size); }
/** * Return the Id expression to add to where clause etc. */ @Override public String getAssocIdExpression(String prefix, String operator) { return targetDescriptor.getIdBinder().getAssocOneIdExpr(prefix, operator); }
/** * Return the logical id value expression taking into account embedded id's. */ @Override public String getAssocIdInValueExpr(boolean not, int size) { return targetDescriptor.getIdBinder().getIdInValueExpr(not, size); }
/** * Return the logical id in expression taking into account embedded id's. */ @Override public String getAssocIdInExpr(String prefix) { return targetDescriptor.getIdBinder().getAssocIdInExpr(prefix); }
/** * Return the Id values from the given bean. */ @Override public Object[] getAssocIdValues(EntityBean bean) { return targetDescriptor.getIdBinder().getIdValues(bean); }
/** * Return the Id values from the given bean. */ @Override public Object[] getAssocIdValues(EntityBean bean) { return targetDescriptor.getIdBinder().getIdValues(bean); }
/** * Return the logical id in expression taking into account embedded id's. */ @Override public String getAssocIdInExpr(String prefix) { return targetDescriptor.getIdBinder().getAssocIdInExpr(prefix); }
@Override public String format(Object value) { return targetDescriptor.getIdBinder().cacheKey(value); }
@Override public void writeBinary(BinaryWriteContext out) throws IOException { DataOutputStream os = out.start(TYPE_BEANIUD); os.writeUTF(descriptorId); os.writeInt(1); // legacy marker for update if (ids == null) { os.writeInt(0); } else { os.writeInt(ids.size()); IdBinder idBinder = beanDescriptor.getIdBinder(); for (Object idValue : ids) { idBinder.writeData(os, idValue); } } }
@Override public void addBindValues(SpiExpressionRequest request) { // Bind the Id values including EmbeddedId and multiple Id DefaultExpressionRequest r = (DefaultExpressionRequest) request; BeanDescriptor<?> descriptor = r.getBeanDescriptor(); IdBinder idBinder = descriptor.getIdBinder(); idBinder.addIdInBindValues(request, idCollection); }
private void checkForValidEmbeddedId(BeanDescriptor<?> d) { IdBinder idBinder = d.getIdBinder(); if (idBinder instanceof IdBinderEmbedded) { IdBinderEmbedded embId = (IdBinderEmbedded) idBinder; BeanDescriptor<?> idBeanDescriptor = embId.getIdBeanDescriptor(); Class<?> idType = idBeanDescriptor.getBeanType(); try { idType.getDeclaredMethod("hashCode"); idType.getDeclaredMethod("equals", Object.class); } catch (NoSuchMethodException e) { checkMissingHashCodeOrEquals(e, idType, d.getBeanType()); } } }
/** * Set the select clause to select the Id property. */ @Override public void setSelectId() { // clear select and fetch joins.. detail.clear(); select(beanDescriptor.getIdBinder().getIdProperty()); }
private void read(BinaryReadContext dataInput) throws IOException { dataInput.readInt(); // legacy read type ids = readIdList(dataInput.in(), beanDescriptor.getIdBinder()); }
private void addColumn(MTable table, BeanDescriptor<?> desc, String column, String findPropColumn) { BeanProperty p = desc.getIdBinder().findBeanProperty(findPropColumn); if (p == null) { throw new RuntimeException("Could not find id property for " + findPropColumn); } MColumn col = new MColumn(column, ctx.getColumnDefn(p, true), true); col.setPrimaryKey(true); table.addColumn(col); }
void initialiseTargetDescriptor(BeanDescriptorInitContext initContext) { targetDescriptor = descriptor.getBeanDescriptor(targetType); if (!isTransient) { targetIdBinder = targetDescriptor.getIdBinder(); targetInheritInfo = targetDescriptor.getInheritInfo(); saveRecurseSkippable = targetDescriptor.isSaveRecurseSkippable(); if (!targetIdBinder.isComplexId()) { targetIdProperty = targetIdBinder.getIdProperty(); } } }
private String parseProperty(Property p) { String propName = p.getProperty(); ElPropertyValue el = desc.getElGetValue(propName); if (el == null) { return p.toStringFormat(); } BeanProperty beanProperty = el.getBeanProperty(); if (beanProperty instanceof BeanPropertyAssoc<?>) { BeanPropertyAssoc<?> ap = (BeanPropertyAssoc<?>) beanProperty; IdBinder idBinder = ap.getTargetDescriptor().getIdBinder(); return idBinder.getOrderBy(el.getElName(), p.isAscending()); } return p.toStringFormat(); } }