Java tutorial
/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.jclouds.azurecompute.util; import java.util.Collections; import java.util.Comparator; import java.util.List; import org.jclouds.azurecompute.domain.NetworkSecurityGroup; import org.jclouds.azurecompute.domain.Rule; import com.google.common.base.Predicate; import com.google.common.base.Predicates; import com.google.common.collect.FluentIterable; public class NetworkSecurityGroups { public static List<Rule> getCustomRules(final NetworkSecurityGroup networkSecurityGroup) { final List<Rule> rules = networkSecurityGroup.rules(); return FluentIterable.from(rules).filter(Predicates.notNull()).filter(new Predicate<Rule>() { @Override public boolean apply(final Rule rule) { return rule.isDefault() == null || !rule.isDefault(); } }).toSortedList(new Comparator<Rule>() { @Override public int compare(final Rule r1, final Rule r2) { final int p1 = Integer.parseInt(r1.priority()); final int p2 = Integer.parseInt(r2.priority()); return p1 < p2 ? -1 : p1 == p2 ? 0 : 1; } }); } public static int getFirstAvailablePriority(final List<Rule> rules) { int priority; if (rules.isEmpty()) { priority = 100; } else { priority = Integer.parseInt(Collections.max(rules, new Comparator<Rule>() { @Override public int compare(final Rule rule1, final Rule rule2) { return Integer.valueOf(rule1.priority()).compareTo(Integer.valueOf(rule2.priority())); } }).priority()) + 1; } return priority; } public static String createRuleName(final String format, final int fromPort, final int toPort) { return String.format(format, fromPort, toPort); } }