private void writeAttributeWithMethodInvoke(WriterBuilder b,
JType t,
String method) {
JBlock block = b.getCurrentBlock();
JConditional cond = block._if(b.getObject().ne(JExpr._null()));
JBlock nullBlock = cond._then();
b.setCurrentBlock(nullBlock);
JVar var = nullBlock.decl(model._ref(String.class),
"_o",
b.getObject().invoke(method));
JConditional cond2 = cond._then()._if(var.ne(JExpr._null()));
QName name = b.getName();
cond2._then().add(b.getXSW().invoke("writeAttribute")
.arg(JExpr.lit(name.getPrefix()))
.arg(JExpr.lit(name.getNamespaceURI()))
.arg(JExpr.lit(name.getLocalPart()))
.arg(var));