001    package org.apache.maven.scm.provider.accurev;
002    
003    /*
004     * Licensed to the Apache Software Foundation (ASF) under one
005     * or more contributor license agreements.  See the NOTICE file
006     * distributed with this work for additional information
007     * regarding copyright ownership.  The ASF licenses this file
008     * to you under the Apache License, Version 2.0 (the
009     * "License"); you may not use this file except in compliance
010     * with the License.  You may obtain a copy of the License at
011     *
012     *   http://www.apache.org/licenses/LICENSE-2.0
013     *
014     * Unless required by applicable law or agreed to in writing,
015     * software distributed under the License is distributed on an
016     * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
017     * KIND, either express or implied.  See the License for the
018     * specific language governing permissions and limitations
019     * under the License.
020     */
021    
022    import java.util.Date;
023    
024    public class Stream
025    {
026    
027        private String name;
028    
029        private long id;
030    
031        private String basis;
032    
033        private long basisId;
034    
035        private String depot;
036    
037        private Date startDate;
038    
039        private String streamType;
040    
041        public Stream( String name, long id, String basis, long basisId, String depot, Date startDate, String streamType )
042        {
043            this.name = name;
044            this.id = id;
045            this.basis = basis;
046            this.basisId = basisId;
047            this.depot = depot;
048            this.startDate = startDate;
049            this.streamType = streamType;
050        }
051    
052        @Override
053        public int hashCode()
054        {
055            final int prime = 31;
056            int result = 1;
057            result = prime * result + ( ( basis == null ) ? 0 : basis.hashCode() );
058            result = prime * result + (int) ( basisId ^ ( basisId >>> 32 ) );
059            result = prime * result + ( ( depot == null ) ? 0 : depot.hashCode() );
060            result = prime * result + (int) ( id ^ ( id >>> 32 ) );
061            result = prime * result + ( ( name == null ) ? 0 : name.hashCode() );
062            result = prime * result + ( ( startDate == null ) ? 0 : startDate.hashCode() );
063            result = prime * result + ( ( streamType == null ) ? 0 : streamType.hashCode() );
064            return result;
065        }
066    
067        @Override
068        public boolean equals( Object obj )
069        {
070            if ( this == obj )
071                return true;
072            if ( obj == null )
073                return false;
074            if ( getClass() != obj.getClass() )
075                return false;
076            Stream other = (Stream) obj;
077            if ( basis == null )
078            {
079                if ( other.basis != null )
080                    return false;
081            }
082            else if ( !basis.equals( other.basis ) )
083                return false;
084            if ( basisId != other.basisId )
085                return false;
086            if ( depot == null )
087            {
088                if ( other.depot != null )
089                    return false;
090            }
091            else if ( !depot.equals( other.depot ) )
092                return false;
093            if ( id != other.id )
094                return false;
095            if ( name == null )
096            {
097                if ( other.name != null )
098                    return false;
099            }
100            else if ( !name.equals( other.name ) )
101                return false;
102            if ( startDate == null )
103            {
104                if ( other.startDate != null )
105                    return false;
106            }
107            else if ( !startDate.equals( other.startDate ) )
108                return false;
109            if ( streamType == null )
110            {
111                if ( other.streamType != null )
112                    return false;
113            }
114            else if ( !streamType.equals( other.streamType ) )
115                return false;
116            return true;
117        }
118    
119        public String getName()
120        {
121            return name;
122        }
123    
124        public long getId()
125        {
126            return id;
127        }
128    
129        public String getBasis()
130        {
131            return basis;
132        }
133    
134        public long getBasisId()
135        {
136            return basisId;
137        }
138    
139        public String getDepot()
140        {
141            return depot;
142        }
143    
144        public Date getStartDate()
145        {
146            return startDate;
147        }
148    
149        public String getStreamType()
150        {
151            return streamType;
152        }
153    
154        public Boolean isWorkspace()
155        {
156            return "workspace".equals( streamType );
157        }
158    
159    }