List<String> serverPropertyKeyList = Lists.newArrayList();
List<String> serverPropertyKeyListExtended = Lists.newArrayList();
for (String clientPropertyKey : m_clientColumnNames) {
ServerPropertyKey serverPropertyKey = clientServerKeyMappings.get(clientPropertyKey);
if (serverPropertyKey == null) {
reportMissingDeployPropertyKey(clientPropertyKey);
return;
}
if (serverPropertyKey.getType() == ServerPropertyKeyType.STANDARD) {
serverPropertyKeyList.add(serverPropertyKey.getServerKeyName());
} else {
serverPropertyKeyListExtended.add(serverPropertyKey.getServerKeyName());
}
}
m_serverColumnNames = serverPropertyKeyList.toArray(new String[serverPropertyKeyList.size()]);
if (serverPropertyKeyListExtended.size() > 0) {
m_serverColumnNamesExtended = serverPropertyKeyListExtended
.toArray(new String[serverPropertyKeyListExtended.size()]);
}
}
String[] clientProperties = entity.getPropertyValuesForDeploy();
String[] values = new String[m_serverColumnNames.length];
String[] extendedValues = null;
if (m_serverColumnNamesExtended != null && m_serverColumnNamesExtended.length > 0)
extendedValues = new String[m_serverColumnNamesExtended.length];
// Loop over the client properties and sort into values and extended values.
int index = -1, indexExt = -1;
for (int i = 0; i < clientProperties.length; ++i) {
String clientPropertyKey = m_clientColumnNames[i];
String value = clientProperties[i];
ServerPropertyKey serverPropertyKey = clientServerKeyMappings.get(clientPropertyKey);
if (serverPropertyKey == null) {
reportMissingDeployPropertyKey(clientPropertyKey);
return;
}
if (serverPropertyKey.getType() == ServerPropertyKeyType.STANDARD) {
++index;
values[index] = value;
} else if (extendedValues != null) {
++indexExt;
extendedValues[indexExt] = value;