}
public static List<NodeTypeTemplate> getNodeTypes( ExecutionContext context ) {
JcrPropertyDefinitionTemplate property;
NodeTypeTemplate car = new JcrNodeTypeTemplate(context);
car.setName("vehix:car");
car.setOrderableChildNodes(true);
car.setPrimaryItemName("vehix:model");
property = new JcrPropertyDefinitionTemplate(context);
property.setName("vehix:maker");
property.setOnParentVersion(OnParentVersionAction.COMPUTE);
property.setRequiredType(PropertyType.STRING);
car.getPropertyDefinitionTemplates().add(property);
property = new JcrPropertyDefinitionTemplate(context);
property.setName("vehix:model");
property.setOnParentVersion(OnParentVersionAction.COMPUTE);
property.setRequiredType(PropertyType.STRING);
car.getPropertyDefinitionTemplates().add(property);
property = new JcrPropertyDefinitionTemplate(context);
property.setName("vehix:introduced");
property.setOnParentVersion(OnParentVersionAction.COMPUTE);
property.setRequiredType(PropertyType.LONG);
car.getPropertyDefinitionTemplates().add(property);
property = new JcrPropertyDefinitionTemplate(context);
property.setName("vehix:year");
property.setOnParentVersion(OnParentVersionAction.COMPUTE);
property.setMandatory(true);
property.setRequiredType(PropertyType.LONG);
car.getPropertyDefinitionTemplates().add(property);
property = new JcrPropertyDefinitionTemplate(context);
property.setName("vehix:msrp");
property.setOnParentVersion(OnParentVersionAction.COMPUTE);
property.setRequiredType(PropertyType.STRING);
car.getPropertyDefinitionTemplates().add(property);
property = new JcrPropertyDefinitionTemplate(context);
property.setName("vehix:userRating");
property.setOnParentVersion(OnParentVersionAction.COMPUTE);
property.setRequiredType(PropertyType.DOUBLE);
car.getPropertyDefinitionTemplates().add(property);
property = new JcrPropertyDefinitionTemplate(context);
property.setName("vehix:valueRating");
property.setOnParentVersion(OnParentVersionAction.COMPUTE);
property.setRequiredType(PropertyType.DOUBLE);
car.getPropertyDefinitionTemplates().add(property);
property = new JcrPropertyDefinitionTemplate(context);
property.setName("vehix:mpgCity");
property.setOnParentVersion(OnParentVersionAction.COMPUTE);
property.setRequiredType(PropertyType.LONG);
car.getPropertyDefinitionTemplates().add(property);
property = new JcrPropertyDefinitionTemplate(context);
property.setName("vehix:mpgHighway");
property.setOnParentVersion(OnParentVersionAction.COMPUTE);
property.setRequiredType(PropertyType.LONG);
car.getPropertyDefinitionTemplates().add(property);
property = new JcrPropertyDefinitionTemplate(context);
property.setName("vehix:lengthInInches");
property.setOnParentVersion(OnParentVersionAction.COMPUTE);
property.setRequiredType(PropertyType.DOUBLE);
car.getPropertyDefinitionTemplates().add(property);
property = new JcrPropertyDefinitionTemplate(context);
property.setName("vehix:wheelbaseInInches");
property.setOnParentVersion(OnParentVersionAction.COMPUTE);
property.setRequiredType(PropertyType.DOUBLE);
car.getPropertyDefinitionTemplates().add(property);
property = new JcrPropertyDefinitionTemplate(context);
property.setName("vehix:engine");
property.setOnParentVersion(OnParentVersionAction.COMPUTE);
property.setRequiredType(PropertyType.STRING);
car.getPropertyDefinitionTemplates().add(property);
NodeTypeTemplate aircraft = new JcrNodeTypeTemplate(context);
aircraft.setName("vehix:aircraft");
aircraft.setDeclaredSupertypeNames(new String[] {"nt:unstructured"});
aircraft.setOrderableChildNodes(true);
property = new JcrPropertyDefinitionTemplate(context);
property.setName("vehix:maker");
property.setOnParentVersion(OnParentVersionAction.COMPUTE);
property.setRequiredType(PropertyType.STRING);
aircraft.getPropertyDefinitionTemplates().add(property);
property = new JcrPropertyDefinitionTemplate(context);
property.setName("vehix:model");
property.setOnParentVersion(OnParentVersionAction.COMPUTE);
property.setRequiredType(PropertyType.STRING);
aircraft.getPropertyDefinitionTemplates().add(property);
property = new JcrPropertyDefinitionTemplate(context);
property.setName("vehix:introduced");
property.setOnParentVersion(OnParentVersionAction.COMPUTE);
property.setRequiredType(PropertyType.LONG);
aircraft.getPropertyDefinitionTemplates().add(property);
property = new JcrPropertyDefinitionTemplate(context);
property.setName("vehix:year");
property.setOnParentVersion(OnParentVersionAction.COMPUTE);
property.setRequiredType(PropertyType.LONG);
aircraft.getPropertyDefinitionTemplates().add(property);
return Arrays.asList(new NodeTypeTemplate[] {car, aircraft,});
}