@Override public List<ExternalId> visitSwapSecurity(final SwapSecurity security) { final List<ExternalId> result = new ArrayList<>(); final SwapLeg payLeg = security.getPayLeg(); final SwapLeg receiveLeg = security.getReceiveLeg(); final String securityType = security.getSecurityType(); if (payLeg.getRegionId().equals(receiveLeg.getRegionId())) { return Arrays.asList( ExternalId.of( SECURITY_IDENTIFIER, securityType + SEPARATOR + payLeg.getRegionId().getValue())); } result.add( ExternalId.of( SECURITY_IDENTIFIER, securityType + SEPARATOR + payLeg.getRegionId().getValue())); result.add( ExternalId.of( SECURITY_IDENTIFIER, securityType + SEPARATOR + receiveLeg.getRegionId().getValue())); return result; }