Skip to content

Instantly share code, notes, and snippets.

@emmanuelbernard
Last active January 6, 2017 10:25
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save emmanuelbernard/08f2a0361188f996dbca19803d9db436 to your computer and use it in GitHub Desktop.
Map<@Valid OrderType, @Valid Order> orderByType; OrderType has a description, Order has a orderNumber
error on orderNumber (i.e. value().orderNumber)
orderByType[RETAIL].orderNumber
orderByType[Row=RETAIL, Column=ONLINE].orderNumber // assuming a Guava Table
error on description (i.e. key().description)
orderByType[RETAIL].key().description //how do we find "key"
orderByType[RETAIL].K().description
orderByType[RETAIL].typeParameter(K).description
orderByType[].key(RETAIL).description
orderByType[].typeParameter(key, RETAIL).description
orderByType[].K(RETAIL).description
orderByType[].typeParameter(K, RETAIL).description
orderbyType[<key=RETAIL>].description
orderbyType[<K=RETAIL>].description
orderByType<K>[RETAIL].description
orderbyType[RETAIL].orderNumber
orderbyType<V>[RETAIL].orderNumber
// assuming a Guava Table
orderByType<R>[RETAIL].description
orderByType<C>[ONLINE].desc
orderByType<C>[ONLINE].desc
orderByType[Row=RETAIL, Column=ONLINE].orderNumber
orderByType<C>[ONLINE].<column>
orderByType<C>[ONLINE]
// Gunnar's multi-asymetric proposal
Map<@NotNull Address, String> nicksByAddress;
nicksByAddress<K>[address.toString()].city //error in address.city
nicksByAddress[address.toString()].<map key> //error in type param of address
nicksByAddress<K>[address.toString()] //error in class level address
// Guillaume
// could use K or the node name Key
nicksByAddress[address.toString()]<K>.city //error in address.city
nicksByAddress[address.toString()].<K> //error in type param of address Map<@NotNull Address, String>
nicksByAddress[address.toString()]<K> //error in class level address Map<@Valid Address, String> @ZipCode class Address
// Emmanuel
// could use K or the node name Key
nicksByAddress<K>[address.toString()].city //error in address.city
nicksByAddress<K>[address.toString()] //error in type param of address
nicksByAddress<K>[address.toString()] //error in class level address
//Yoann: keyset consistency
nicksByAddress.keySet[].city //error in address.city
nicksByAddress.keySet[].<iterable element> //error in type param of address
nicksByAddress.keySet[] //error in class level address
orderByType.keys
orders[].<keys>
orders[].values
orders.values[]
Map<String, String> cityByZipCode;
error on city (value)
cityByZipCode[1234D]
error on zipCode (key)
cityByZipCode[].K(1234D)
class BiOptional<O1, O2> {}
BiOptional<@Min(1) String, @Max(30) Integer> biOptional;
biOptional<O1>
biOptional<O2>
Node(name=biOptional)
Node(inIterable=false,index=null,key=null,name=<Optional1>
biOptional.<Optional1> //right now
biOptional<O2>.<Optional1>
optional.get()
2. Do we want a customizable type param name
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment