ronan
ronan

Reputation: 4672

Refactor the existing code :- put a portion of a code in a method and use that method

The existing fillModel method is as below

@Override
        protected void fillModel(final Model model,
                final List<FacebookChannelConfig> items) {
            final Map<FacebookChannelConfig, Boolean> defaultConfigMap = Maps
                    .newHashMapWithExpectedSize(items.size());
            for (FacebookChannelConfig channelConfig : items) {
                if (configRepository.getDefault() != null
                        && configRepository.getDefault().getId().toString()
                                .equals(channelConfig.getId().toString())) {
                    defaultConfigMap.put(channelConfig, Boolean.TRUE);
                } else {
                    defaultConfigMap.put(channelConfig, Boolean.FALSE);
                }
                if (channelConfig.getOwner().getId().getId() != userContext
                        .getOrganization().getId().getId()) {
                    channelConfig.setName(channelConfig.getName() + "("
                            + channelConfig.getOwner().getName() + ")");
                }
            }
            model.addAttribute("isDefault", defaultConfigMap);
        }

I have added the following code from above fillModel to *idDefault* method as above.

if (configRepository.getDefault() != null
                    && configRepository.getDefault().getId().toString()
                            .equals(channelConfig.getId().toString())) {
                defaultConfigMap.put(channelConfig, Boolean.TRUE);
            } else {
                defaultConfigMap.put(channelConfig, Boolean.FALSE);
            }

I have the isDefault method which returns boolean values as below

private boolean isDefault(final List<FacebookChannelConfig> config) {
        if (configRepository.getDefault() != null
                && configRepository.getDefault().getId().toString()
                        .equals(config.get(0).toString())) {
            return true;
        }
        return false;
    }

The above method isDefault is being used inside fillModel method as below

   protected void fillModel(final Model model,
                final List<FacebookChannelConfig> items) {
            final Map<FacebookChannelConfig, Boolean> defaultConfigMap = Maps
                    .newHashMapWithExpectedSize(items.size());
            for (FacebookChannelConfig channelConfig : items) {
              defaultConfigMap.put(channelConfig, isDefault(items));
             if (channelConfig.getOwner().getId().getId() != userContext.getOrganization().getId().getId()) {
                    channelConfig.setName(
                            channelConfig.getName() + "("
                                    + channelConfig.getOwner().getName()
                                    + ")");
                }
            }
            model.addAttribute("isDefault", defaultConfigMap);
        }

The above usage of defaultConfigMap.put(channelConfig, isDefault(items)); is not correct. Pleas suggest

Upvotes: 0

Views: 65

Answers (1)

Tyco
Tyco

Reputation: 131

You use List where you wanted the element: Maybe this could work:

    private boolean isDefault(final FacebookChannelConfig channelConfig) {
        if (configRepository.getDefault() != null
                    && configRepository.getDefault().getId().toString()
                            .equals(channelConfig.getId().toString())) {
            return true;
        }
        return false;
    }

and use:

defaultConfigMap.put(channelConfig, isDefault(channelConfig));

Upvotes: 1

Related Questions