// Create a new attributes class.
DissectableAreaAttributes attrs
= new DissectableAreaAttributes();
// Get the dissectable area identity.
DissectableAreaIdentity identity
= getDissectableAreaIdentity(attributes);
// Initialise the attributes class.
attrs.setIdentity(identity);
// Set the annotation and the type.
annotation = attrs;
type = DissectionElementTypes.getDissectableAreaType();
} else if (localName.equals(KEEP_TOGETHER)) {
// Create a new attributes class.
KeepTogetherAttributes attrs
= new KeepTogetherAttributes();
// Initialise the attributes class.
String after = attributes.getValue("forceBreakAfter");
String before = attributes.getValue("forceBreakBefore");
attrs.setForceBreakAfter("true".equalsIgnoreCase(after));
attrs.setForceBreakBefore("true".equalsIgnoreCase(before));
// Set the annotation and the type.
annotation = attrs;
type = DissectionElementTypes.getKeepTogetherType();
} else if (localName.equals(SHARD_LINK)) {
// Create a new attributes class.
ShardLinkAttributes attrs
= new ShardLinkAttributes();
// Initialise the attributes class.
String value = attributes.getValue("action");
ShardLinkAction action;
if (value.equals("next")) {
action = ShardLinkAction.NEXT;
} else if (value.equals("previous")) {
action = ShardLinkAction.PREVIOUS;
} else {
throw new IllegalArgumentException("Unknown action: "
+ value);
}
attrs.setAction(action);
attrs.setUserData(attributes.getValue("userData"));
annotation = attrs;
type = DissectionElementTypes.getShardLinkType();
} else if (localName.equals(SHARD_LINK_GROUP)) {
// Get the dissectable area identity.
DissectableAreaIdentity identity
= getDissectableAreaIdentity(attributes);
// Create a new attributes class.
ShardLinkGroupAttributes attrs
= new ShardLinkGroupAttributes();