/** * Obtains an instance from the specified external name, index name and type. * * @param externalName the unique name * @param indexName the name of the index * @param type the type - Ibor, Overnight or Price * @return the name * @throws IllegalArgumentException if the name is not known */ public static ImmutableFloatingRateName of(String externalName, String indexName, FloatingRateType type) { return new ImmutableFloatingRateName(externalName, indexName, type, null); }
/** * Restricted copy constructor. * @param beanToCopy the bean to copy from, not null */ private Builder(ImmutableFloatingRateName beanToCopy) { this.externalName = beanToCopy.getExternalName(); this.indexName = beanToCopy.getIndexName(); this.type = beanToCopy.getType(); this.fixingDateOffsetDays = beanToCopy.fixingDateOffsetDays; }
/** * Returns the name of the index. * * @return the name of the index */ @Override public String toString() { return getName(); }
private static void parseFixingDateOffset(PropertySet section, HashMap<String, ImmutableFloatingRateName> mutableMap) { // find our names from the RHS of the key/value pairs for (String key : section.keys()) { Integer days = Integer.parseInt(section.value(key)); ImmutableFloatingRateName name = mutableMap.get(key.toUpperCase(Locale.ENGLISH)); ImmutableFloatingRateName updated = name.toBuilder().fixingDateOffsetDays(days).build(); mutableMap.put(key.toUpperCase(Locale.ENGLISH), updated); } }
private static void parseSection( PropertySet section, String indexNameSuffix, FloatingRateType type, HashMap<String, ImmutableFloatingRateName> mutableMap) { // find our names from the RHS of the key/value pairs for (String key : section.keys()) { ImmutableFloatingRateName name = ImmutableFloatingRateName.of(key, section.value(key) + indexNameSuffix, type); mutableMap.put(key, name); mutableMap.putIfAbsent(key.toUpperCase(Locale.ENGLISH), name); } }
@Override protected Object propertyGet(Bean bean, String propertyName, boolean quiet) { switch (propertyName.hashCode()) { case -1386121994: // externalName return ((ImmutableFloatingRateName) bean).getExternalName(); case -807707011: // indexName return ((ImmutableFloatingRateName) bean).getIndexName(); case 3575610: // type return ((ImmutableFloatingRateName) bean).getType(); case -594001179: // fixingDateOffsetDays return ((ImmutableFloatingRateName) bean).fixingDateOffsetDays; } return super.propertyGet(bean, propertyName, quiet); }
@Override public ImmutableFloatingRateName build() { return new ImmutableFloatingRateName( externalName, indexName, type, fixingDateOffsetDays); }
/** * Obtains an instance from the specified external name, index name and type. * * @param externalName the unique name * @param indexName the name of the index * @param type the type - Ibor, Overnight or Price * @param fixingDateOffsetDays the fixing date offset, in days, negative to use the standard * @return the name * @throws IllegalArgumentException if the name is not known */ public static ImmutableFloatingRateName of( String externalName, String indexName, FloatingRateType type, int fixingDateOffsetDays) { return new ImmutableFloatingRateName(externalName, indexName, type, fixingDateOffsetDays >= 0 ? fixingDateOffsetDays : null); }