Understanding BOM-to-XOM mapping

When you build an external library, a BOM is automatically created from the Java™™ compiled classes contained in the XOM.
Table 1. Business elements originating from a Java XOM
Java XOM element Becomes element in the BOM...
Nongeneric public class Class with the same name

Class that implements the java.util.Collection interface

For example:

MyCollection implements java.util.Collection

Class with a collection domain to be recognized as a collection when verbalized

For example:

public class MyCollection implements java.util.Collection {
     domain 0, * ;
     }
Public constructor Constructor with the same parameters
Public attribute Attribute with the same name and return type
Final attribute Read-only attribute with the same name and return type

Public static final attributes whose types are the current class.

For example:

public class Color {
private Color(String name) {…}
public static final Color red = new Color("red");
public static final Color blue = new Color("blue");
public static final Color green = new Color("green");
}

Enumerated domain of static references of the class

For example:

public class Color {
domain { static red, static blue, static green }
public static final readonly Color red;
public static final readonly Color blue;
public static final readonly Color green;
}

Public method that does not follow the JavaBeans convention for property accessors (void setFoo(PropertyType value) and PropertyType getFoo())

For example:

public interface Customer
{
public boolean register(java.sql.Connection db);
}

Method with equivalent parameters

For example:

public interface Customer
{
public abstract boolean register(java.sql.Connection arg);
}

Public method that follows the JavaBeans convention, with a get method and no set method

For example:

public interface Customer
{
public int getAge();
}

Read-only attribute

For example:

public interface Customer
{
public readonly int age;
}

Public method that follows the JavaBeans convention, with only a set method

For example:

public interface Customer {
public void setBirthDate(Date date);
}

Write-only attribute

For example:

public interface Customer
{
public writeonly java.util.Date birthDate;

Public method that follows the JavaBeans convention, with both a get method and a set method

For example:

public interface Customer {
public String getName();
public void setName(String name);
}

Attribute

For example:

public interface Customer
{
public java.lang.String name;
}