Mam dwa wyliczenia, które są powiązane.Dwa powiązane mapowanie podsumowań?
Enum1:
public enum HttpMethodName
{
GET, POST, PUT, DELETE;
}
Enum2:
public enum ProtocolOperation {
CREATE(1), RETRIEVE(2), UPDATE(3), DELETE(4), NOTIFY(5);
private BigInteger operationId;
public BigInteger getOperationId() {
return operationId;
}
private ProtocolOperation(int operationId) {
this.operationId = BigInteger.valueOf(operationId);
}
}
Wartości wyliczenia mają odwzorowanie jako:
Create--> POST
Retrieve--> GET
Update--> PUT
Delete--> DELETE
Notify---> POST
Więc jest mapowanie jeden do jednego między wartościami z wyjątkiem tylko dla POST
przypadku które mogą mieć dwie wartości: Create
lub Notify
na podstawie warunku. tam
public enum HttpMethodName
{
POST(new List(ProtocolOperation.CREATE, ProtocolOperation.NOTIFY)) ,GET (new List(ProtocolOperation.RETRIEVE)) ,
PUT (new List(ProtocolOperation.UPDATE) ,DELETE(new List(ProtocolOperation.DELETE) ;
List<ProtocolOperation > ops;
HttpMethodName (List<ProtocolOperation> ops)
{
this.ops = ops;
}
}
jest lepszym podejściem ??:
Myślałam o utrzymanie mapowanie jako List
EDIT:
będę chciał mapowanie oba sposoby z HttpMethodName <----> ProtocolOperation
Czy to ostatnia edycja, aby słowo "zarówno" pogrubienie, reakcję na moją odpowiedź? Ponieważ moja odpowiedź ma odwzorowanie w obu kierunkach. – Andreas
użyć można użyć BiMap w Guava – yelliver
Czy spodziewasz się mieć dwie instancje 'Map' lub czy istniejące metody zalecania odpowiedzi są wystarczająco dobre? Być może możesz również podzielić się tym, w jaki sposób ta relacja będzie dalej używana w twojej bazie kodów? –