Coverage Report - org.apache.creadur.whisker.model.LicenseAndOrganisationCollator
 
Classes in this File Line Coverage Branch Coverage Complexity
LicenseAndOrganisationCollator
76%
10/13
62%
5/8
1.25
 
 1  
 /**
 2  
  * Licensed to the Apache Software Foundation (ASF) under one
 3  
  * or more contributor license agreements.  See the NOTICE file
 4  
  * distributed with this work for additional information
 5  
  * regarding copyright ownership.  The ASF licenses this file
 6  
  *  to you under the Apache License, Version 2.0 (the
 7  
  * "License"); you may not use this file except in compliance
 8  
  *  with the License.  You may obtain a copy of the License at
 9  
  *
 10  
  *   http://www.apache.org/licenses/LICENSE-2.0
 11  
  *
 12  
  * Unless required by applicable law or agreed to in writing,
 13  
  * software distributed under the License is distributed on an
 14  
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 15  
  * KIND, either express or implied.  See the License for the
 16  
  * specific language governing permissions and limitations
 17  
  * under the License.
 18  
  */
 19  
 package org.apache.creadur.whisker.model;
 20  
 
 21  
 import java.util.Set;
 22  
 import java.util.TreeSet;
 23  
 
 24  
 /**
 25  
  * Collates licenses and organisations.
 26  
  */
 27  6
 public class LicenseAndOrganisationCollator extends Visitor {
 28  
     /** The licenses currently collected. */
 29  6
     private final Set<License> licenses = new TreeSet<License>();
 30  
     /** The organisations currently collected. */
 31  6
     private final Set<Organisation> organisations = new TreeSet<Organisation>();
 32  
 
 33  
     /**
 34  
      * Gets the licenses collected.
 35  
      * @return not null
 36  
      */
 37  
     public Set<License> getLicenses() {
 38  0
         return this.licenses;
 39  
     }
 40  
 
 41  
     /**
 42  
      * Gets the organisations collected.
 43  
      * @return not null
 44  
      */
 45  
     public Set<Organisation> getOrganisation() {
 46  0
         return this.organisations;
 47  
     }
 48  
 
 49  
     /**
 50  
      * Don't traverse resources.
 51  
      * @see Visitor#traverseResource()
 52  
      * @return false
 53  
      */
 54  
     @Override
 55  
     public boolean traverseResource() {
 56  8
         return false;
 57  
     }
 58  
 
 59  
     /**
 60  
      * Visits {@link WithLicense}.
 61  
      * @see Visitor#visit(WithLicense)
 62  
      * @param license not null
 63  
      */
 64  
     @Override
 65  
     public void visit(final WithLicense license) {
 66  8
         this.licenses.add(license.getLicense());
 67  8
     }
 68  
 
 69  
     /**
 70  
      * Was this the only license collected?
 71  
      * @param license not null
 72  
      * @return true when the collection contains just this license,
 73  
      * false when no licenses or any other licenses were collected
 74  
      */
 75  
     public boolean isOnlyLicense(final License license) {
 76  2
         return (this.licenses.size() == 1) && this.licenses.contains(license);
 77  
     }
 78  
 
 79  
     /**
 80  
      * Visits {@link ByOrganisation}.
 81  
      * @see Visitor#visit(ByOrganisation)
 82  
      * @param byOrganisation not null
 83  
      */
 84  
     @Override
 85  
     public void visit(final ByOrganisation byOrganisation) {
 86  8
         this.organisations.add(byOrganisation.getOrganisation());
 87  8
     }
 88  
 
 89  
     /**
 90  
      * Something useful for logging.
 91  
      * @see java.lang.Object#toString()
 92  
      * @return something for logging
 93  
      */
 94  
     @Override
 95  
     public String toString() {
 96  0
         return "LicenseAndOrganisationCollator [licenses=" + this.licenses
 97  
                 + ", organisations=" + this.organisations + "]";
 98  
     }
 99  
 
 100  
     /**
 101  
      * Is there only one organisation collected with the given id?
 102  
      * @param primaryOrganisationId not null
 103  
      * @return true when only one organisation has been collected
 104  
      * and it has the given id
 105  
      */
 106  
     public boolean isOnlyOrganisation(final String primaryOrganisationId) {
 107  6
         return this.organisations.size() == 1
 108  
                 && this.organisations.iterator().next().getId()
 109  
                         .equals(primaryOrganisationId);
 110  
     }
 111  
 }