Q:

Dynamic cast to enum using SimpleFramework

I have an XML String with an attribute that contains integer value:
<item status="2" />

There is also Simple Framework class that describes this item:
@Root
public static class Item {

    @Attribute(name="status")
    private int status;

    public int getStatus() {
        return status;
    }

}

Unserialization works well, however I want to be able to change int type to the defined enum type.
public enum Status {
    OK(0), PENDING(1), ERROR(2);

    BetStatus(int status) {
        this.status = status;
    }

    public int getStatus() {
        return status;
    }
}

So with a quick modification:
@Root
public static class Item {

    @Attribute(name="status")
    private Status status;

    public Status getStatus() {
        return status;
    }

}

However now I get an error:
java.lang.IllegalArgumentException: 2 is not a constant in com.my.package.Status

Is it possible to cast int this way during unserialization ?
I bet I have to add some magic method to my Status class.
Solution:
According to Reimeus answer I leaved int type for status attribute and I modified just Item class with:
@Root
public static class Item {

    @Attribute(name="status")
    private int status;

    public Status getStatus() {
        return Status.getByOrdinal(status);
    }

}

A:

Perhaps by iterating through the types:
public enum Status {
    OK(0), PENDING(1), ERROR(2);

    private int status;

    Status(int status) {
        this.status = status;
    }

    public static Status getByOrdinal(int ordinal) {
        for (final Status element : EnumSet.allOf(Status.class)) {
            if (element.ordinal() == ordinal) {
                return element;
            }
        }

        throw new IllegalArgumentException("Unknown status type: " + ordinal);
    }
}

