view flys-backend/src/main/java/de/intevation/seddb/model/GlotlinksId.java @ 5779:ebec12def170

Datacage: Add a pool of builders to make it multi threadable. XML DOM is not thread safe. Therefore the old implementation only allowed one thread to use the builder at a time. As the complexity of the configuration has increased over time this has become a bottleneck of the whole application because it took quiet some time to build a result. Furthermore the builder code path is visited very frequent. So many concurrent requests were piled up resulting in long waits for the users. To mitigate this problem a round robin pool of builders is used now. Each of the pooled builders has an independent copy of the XML template and can be run in parallel. The number of builders is determined by the system property 'flys.datacage.pool.size'. It defaults to 4.
author Sascha L. Teichmann <teichmann@intevation.de>
date Sun, 21 Apr 2013 12:48:09 +0200
parents 2ae732e2c65c
children 18619c1e7c2a
line wrap: on
line source
package de.intevation.seddb.model;
// Generated 14.06.2012 11:30:57 by Hibernate Tools 3.4.0.CR1


import java.math.BigDecimal;
import javax.persistence.Column;
import javax.persistence.Embeddable;

/**
 * GlotlinksId generated by hbm2java
 */
@Embeddable
public class GlotlinksId  implements java.io.Serializable {


     private long glotrechteid;
     private long messungid;
     private BigDecimal uferabst;
     private BigDecimal tgeschiebe;
     private BigDecimal dm;
     private BigDecimal sk;
     private BigDecimal so;
     private BigDecimal u;
     private BigDecimal d90;
     private BigDecimal d84;
     private BigDecimal d80;
     private BigDecimal d75;
     private BigDecimal d70;
     private BigDecimal d60;
     private BigDecimal d50;
     private BigDecimal d40;
     private BigDecimal d30;
     private BigDecimal d25;
     private BigDecimal d20;
     private BigDecimal d16;
     private BigDecimal d10;
     private BigDecimal dmin;
     private BigDecimal durchdmin;
     private BigDecimal dmax;
     private BigDecimal durchdmax;
     private BigDecimal stdabw;
     private BigDecimal stdfehler;
     private String bemerkung;
     private BigDecimal uferablinks;
     private BigDecimal linksabst;

    public GlotlinksId() {
    }


    public GlotlinksId(long glotrechteid, long messungid, BigDecimal uferabst) {
        this.glotrechteid = glotrechteid;
        this.messungid = messungid;
        this.uferabst = uferabst;
    }
    public GlotlinksId(long glotrechteid, long messungid, BigDecimal uferabst, BigDecimal tgeschiebe, BigDecimal dm, BigDecimal sk, BigDecimal so, BigDecimal u, BigDecimal d90, BigDecimal d84, BigDecimal d80, BigDecimal d75, BigDecimal d70, BigDecimal d60, BigDecimal d50, BigDecimal d40, BigDecimal d30, BigDecimal d25, BigDecimal d20, BigDecimal d16, BigDecimal d10, BigDecimal dmin, BigDecimal durchdmin, BigDecimal dmax, BigDecimal durchdmax, BigDecimal stdabw, BigDecimal stdfehler, String bemerkung, BigDecimal uferablinks, BigDecimal linksabst) {
       this.glotrechteid = glotrechteid;
       this.messungid = messungid;
       this.uferabst = uferabst;
       this.tgeschiebe = tgeschiebe;
       this.dm = dm;
       this.sk = sk;
       this.so = so;
       this.u = u;
       this.d90 = d90;
       this.d84 = d84;
       this.d80 = d80;
       this.d75 = d75;
       this.d70 = d70;
       this.d60 = d60;
       this.d50 = d50;
       this.d40 = d40;
       this.d30 = d30;
       this.d25 = d25;
       this.d20 = d20;
       this.d16 = d16;
       this.d10 = d10;
       this.dmin = dmin;
       this.durchdmin = durchdmin;
       this.dmax = dmax;
       this.durchdmax = durchdmax;
       this.stdabw = stdabw;
       this.stdfehler = stdfehler;
       this.bemerkung = bemerkung;
       this.uferablinks = uferablinks;
       this.linksabst = linksabst;
    }



    @Column(name="GLOTRECHTEID", nullable=false, precision=11, scale=0)
    public long getGlotrechteid() {
        return this.glotrechteid;
    }

    public void setGlotrechteid(long glotrechteid) {
        this.glotrechteid = glotrechteid;
    }


    @Column(name="MESSUNGID", nullable=false, precision=11, scale=0)
    public long getMessungid() {
        return this.messungid;
    }

    public void setMessungid(long messungid) {
        this.messungid = messungid;
    }


    @Column(name="UFERABST", nullable=false, precision=8, scale=3)
    public BigDecimal getUferabst() {
        return this.uferabst;
    }

    public void setUferabst(BigDecimal uferabst) {
        this.uferabst = uferabst;
    }


    @Column(name="TGESCHIEBE", precision=8, scale=3)
    public BigDecimal getTgeschiebe() {
        return this.tgeschiebe;
    }

    public void setTgeschiebe(BigDecimal tgeschiebe) {
        this.tgeschiebe = tgeschiebe;
    }


    @Column(name="DM", precision=7, scale=4)
    public BigDecimal getDm() {
        return this.dm;
    }

    public void setDm(BigDecimal dm) {
        this.dm = dm;
    }


    @Column(name="SK", precision=8, scale=3)
    public BigDecimal getSk() {
        return this.sk;
    }

    public void setSk(BigDecimal sk) {
        this.sk = sk;
    }


    @Column(name="SO", precision=8, scale=3)
    public BigDecimal getSo() {
        return this.so;
    }

    public void setSo(BigDecimal so) {
        this.so = so;
    }


    @Column(name="U", precision=8, scale=3)
    public BigDecimal getU() {
        return this.u;
    }

    public void setU(BigDecimal u) {
        this.u = u;
    }


    @Column(name="D90", precision=7, scale=4)
    public BigDecimal getD90() {
        return this.d90;
    }

    public void setD90(BigDecimal d90) {
        this.d90 = d90;
    }


    @Column(name="D84", precision=7, scale=4)
    public BigDecimal getD84() {
        return this.d84;
    }

    public void setD84(BigDecimal d84) {
        this.d84 = d84;
    }


    @Column(name="D80", precision=7, scale=4)
    public BigDecimal getD80() {
        return this.d80;
    }

    public void setD80(BigDecimal d80) {
        this.d80 = d80;
    }


    @Column(name="D75", precision=7, scale=4)
    public BigDecimal getD75() {
        return this.d75;
    }

    public void setD75(BigDecimal d75) {
        this.d75 = d75;
    }


    @Column(name="D70", precision=7, scale=4)
    public BigDecimal getD70() {
        return this.d70;
    }

    public void setD70(BigDecimal d70) {
        this.d70 = d70;
    }


    @Column(name="D60", precision=7, scale=4)
    public BigDecimal getD60() {
        return this.d60;
    }

    public void setD60(BigDecimal d60) {
        this.d60 = d60;
    }


    @Column(name="D50", precision=7, scale=4)
    public BigDecimal getD50() {
        return this.d50;
    }

    public void setD50(BigDecimal d50) {
        this.d50 = d50;
    }


    @Column(name="D40", precision=7, scale=4)
    public BigDecimal getD40() {
        return this.d40;
    }

    public void setD40(BigDecimal d40) {
        this.d40 = d40;
    }


    @Column(name="D30", precision=7, scale=4)
    public BigDecimal getD30() {
        return this.d30;
    }

    public void setD30(BigDecimal d30) {
        this.d30 = d30;
    }


    @Column(name="D25", precision=7, scale=4)
    public BigDecimal getD25() {
        return this.d25;
    }

    public void setD25(BigDecimal d25) {
        this.d25 = d25;
    }


    @Column(name="D20", precision=7, scale=4)
    public BigDecimal getD20() {
        return this.d20;
    }

    public void setD20(BigDecimal d20) {
        this.d20 = d20;
    }


    @Column(name="D16", precision=7, scale=4)
    public BigDecimal getD16() {
        return this.d16;
    }

    public void setD16(BigDecimal d16) {
        this.d16 = d16;
    }


    @Column(name="D10", precision=7, scale=4)
    public BigDecimal getD10() {
        return this.d10;
    }

    public void setD10(BigDecimal d10) {
        this.d10 = d10;
    }


    @Column(name="DMIN", precision=7, scale=4)
    public BigDecimal getDmin() {
        return this.dmin;
    }

    public void setDmin(BigDecimal dmin) {
        this.dmin = dmin;
    }


    @Column(name="DURCHDMIN", precision=6, scale=3)
    public BigDecimal getDurchdmin() {
        return this.durchdmin;
    }

    public void setDurchdmin(BigDecimal durchdmin) {
        this.durchdmin = durchdmin;
    }


    @Column(name="DMAX", precision=7, scale=4)
    public BigDecimal getDmax() {
        return this.dmax;
    }

    public void setDmax(BigDecimal dmax) {
        this.dmax = dmax;
    }


    @Column(name="DURCHDMAX", precision=6, scale=3)
    public BigDecimal getDurchdmax() {
        return this.durchdmax;
    }

    public void setDurchdmax(BigDecimal durchdmax) {
        this.durchdmax = durchdmax;
    }


    @Column(name="STDABW", precision=8, scale=3)
    public BigDecimal getStdabw() {
        return this.stdabw;
    }

    public void setStdabw(BigDecimal stdabw) {
        this.stdabw = stdabw;
    }


    @Column(name="STDFEHLER", precision=8, scale=3)
    public BigDecimal getStdfehler() {
        return this.stdfehler;
    }

    public void setStdfehler(BigDecimal stdfehler) {
        this.stdfehler = stdfehler;
    }


    @Column(name="BEMERKUNG", length=240)
    public String getBemerkung() {
        return this.bemerkung;
    }

    public void setBemerkung(String bemerkung) {
        this.bemerkung = bemerkung;
    }


    @Column(name="UFERABLINKS", precision=8, scale=3)
    public BigDecimal getUferablinks() {
        return this.uferablinks;
    }

    public void setUferablinks(BigDecimal uferablinks) {
        this.uferablinks = uferablinks;
    }


    @Column(name="LINKSABST", precision=22, scale=0)
    public BigDecimal getLinksabst() {
        return this.linksabst;
    }

    public void setLinksabst(BigDecimal linksabst) {
        this.linksabst = linksabst;
    }


   public boolean equals(Object other) {
         if ( (this == other ) ) return true;
         if ( (other == null ) ) return false;
         if ( !(other instanceof GlotlinksId) ) return false;
         GlotlinksId castOther = ( GlotlinksId ) other;

         return (this.getGlotrechteid()==castOther.getGlotrechteid())
 && (this.getMessungid()==castOther.getMessungid())
 && ( (this.getUferabst()==castOther.getUferabst()) || ( this.getUferabst()!=null && castOther.getUferabst()!=null && this.getUferabst().equals(castOther.getUferabst()) ) )
 && ( (this.getTgeschiebe()==castOther.getTgeschiebe()) || ( this.getTgeschiebe()!=null && castOther.getTgeschiebe()!=null && this.getTgeschiebe().equals(castOther.getTgeschiebe()) ) )
 && ( (this.getDm()==castOther.getDm()) || ( this.getDm()!=null && castOther.getDm()!=null && this.getDm().equals(castOther.getDm()) ) )
 && ( (this.getSk()==castOther.getSk()) || ( this.getSk()!=null && castOther.getSk()!=null && this.getSk().equals(castOther.getSk()) ) )
 && ( (this.getSo()==castOther.getSo()) || ( this.getSo()!=null && castOther.getSo()!=null && this.getSo().equals(castOther.getSo()) ) )
 && ( (this.getU()==castOther.getU()) || ( this.getU()!=null && castOther.getU()!=null && this.getU().equals(castOther.getU()) ) )
 && ( (this.getD90()==castOther.getD90()) || ( this.getD90()!=null && castOther.getD90()!=null && this.getD90().equals(castOther.getD90()) ) )
 && ( (this.getD84()==castOther.getD84()) || ( this.getD84()!=null && castOther.getD84()!=null && this.getD84().equals(castOther.getD84()) ) )
 && ( (this.getD80()==castOther.getD80()) || ( this.getD80()!=null && castOther.getD80()!=null && this.getD80().equals(castOther.getD80()) ) )
 && ( (this.getD75()==castOther.getD75()) || ( this.getD75()!=null && castOther.getD75()!=null && this.getD75().equals(castOther.getD75()) ) )
 && ( (this.getD70()==castOther.getD70()) || ( this.getD70()!=null && castOther.getD70()!=null && this.getD70().equals(castOther.getD70()) ) )
 && ( (this.getD60()==castOther.getD60()) || ( this.getD60()!=null && castOther.getD60()!=null && this.getD60().equals(castOther.getD60()) ) )
 && ( (this.getD50()==castOther.getD50()) || ( this.getD50()!=null && castOther.getD50()!=null && this.getD50().equals(castOther.getD50()) ) )
 && ( (this.getD40()==castOther.getD40()) || ( this.getD40()!=null && castOther.getD40()!=null && this.getD40().equals(castOther.getD40()) ) )
 && ( (this.getD30()==castOther.getD30()) || ( this.getD30()!=null && castOther.getD30()!=null && this.getD30().equals(castOther.getD30()) ) )
 && ( (this.getD25()==castOther.getD25()) || ( this.getD25()!=null && castOther.getD25()!=null && this.getD25().equals(castOther.getD25()) ) )
 && ( (this.getD20()==castOther.getD20()) || ( this.getD20()!=null && castOther.getD20()!=null && this.getD20().equals(castOther.getD20()) ) )
 && ( (this.getD16()==castOther.getD16()) || ( this.getD16()!=null && castOther.getD16()!=null && this.getD16().equals(castOther.getD16()) ) )
 && ( (this.getD10()==castOther.getD10()) || ( this.getD10()!=null && castOther.getD10()!=null && this.getD10().equals(castOther.getD10()) ) )
 && ( (this.getDmin()==castOther.getDmin()) || ( this.getDmin()!=null && castOther.getDmin()!=null && this.getDmin().equals(castOther.getDmin()) ) )
 && ( (this.getDurchdmin()==castOther.getDurchdmin()) || ( this.getDurchdmin()!=null && castOther.getDurchdmin()!=null && this.getDurchdmin().equals(castOther.getDurchdmin()) ) )
 && ( (this.getDmax()==castOther.getDmax()) || ( this.getDmax()!=null && castOther.getDmax()!=null && this.getDmax().equals(castOther.getDmax()) ) )
 && ( (this.getDurchdmax()==castOther.getDurchdmax()) || ( this.getDurchdmax()!=null && castOther.getDurchdmax()!=null && this.getDurchdmax().equals(castOther.getDurchdmax()) ) )
 && ( (this.getStdabw()==castOther.getStdabw()) || ( this.getStdabw()!=null && castOther.getStdabw()!=null && this.getStdabw().equals(castOther.getStdabw()) ) )
 && ( (this.getStdfehler()==castOther.getStdfehler()) || ( this.getStdfehler()!=null && castOther.getStdfehler()!=null && this.getStdfehler().equals(castOther.getStdfehler()) ) )
 && ( (this.getBemerkung()==castOther.getBemerkung()) || ( this.getBemerkung()!=null && castOther.getBemerkung()!=null && this.getBemerkung().equals(castOther.getBemerkung()) ) )
 && ( (this.getUferablinks()==castOther.getUferablinks()) || ( this.getUferablinks()!=null && castOther.getUferablinks()!=null && this.getUferablinks().equals(castOther.getUferablinks()) ) )
 && ( (this.getLinksabst()==castOther.getLinksabst()) || ( this.getLinksabst()!=null && castOther.getLinksabst()!=null && this.getLinksabst().equals(castOther.getLinksabst()) ) );
   }

   public int hashCode() {
         int result = 17;

         result = 37 * result + (int) this.getGlotrechteid();
         result = 37 * result + (int) this.getMessungid();
         result = 37 * result + ( getUferabst() == null ? 0 : this.getUferabst().hashCode() );
         result = 37 * result + ( getTgeschiebe() == null ? 0 : this.getTgeschiebe().hashCode() );
         result = 37 * result + ( getDm() == null ? 0 : this.getDm().hashCode() );
         result = 37 * result + ( getSk() == null ? 0 : this.getSk().hashCode() );
         result = 37 * result + ( getSo() == null ? 0 : this.getSo().hashCode() );
         result = 37 * result + ( getU() == null ? 0 : this.getU().hashCode() );
         result = 37 * result + ( getD90() == null ? 0 : this.getD90().hashCode() );
         result = 37 * result + ( getD84() == null ? 0 : this.getD84().hashCode() );
         result = 37 * result + ( getD80() == null ? 0 : this.getD80().hashCode() );
         result = 37 * result + ( getD75() == null ? 0 : this.getD75().hashCode() );
         result = 37 * result + ( getD70() == null ? 0 : this.getD70().hashCode() );
         result = 37 * result + ( getD60() == null ? 0 : this.getD60().hashCode() );
         result = 37 * result + ( getD50() == null ? 0 : this.getD50().hashCode() );
         result = 37 * result + ( getD40() == null ? 0 : this.getD40().hashCode() );
         result = 37 * result + ( getD30() == null ? 0 : this.getD30().hashCode() );
         result = 37 * result + ( getD25() == null ? 0 : this.getD25().hashCode() );
         result = 37 * result + ( getD20() == null ? 0 : this.getD20().hashCode() );
         result = 37 * result + ( getD16() == null ? 0 : this.getD16().hashCode() );
         result = 37 * result + ( getD10() == null ? 0 : this.getD10().hashCode() );
         result = 37 * result + ( getDmin() == null ? 0 : this.getDmin().hashCode() );
         result = 37 * result + ( getDurchdmin() == null ? 0 : this.getDurchdmin().hashCode() );
         result = 37 * result + ( getDmax() == null ? 0 : this.getDmax().hashCode() );
         result = 37 * result + ( getDurchdmax() == null ? 0 : this.getDurchdmax().hashCode() );
         result = 37 * result + ( getStdabw() == null ? 0 : this.getStdabw().hashCode() );
         result = 37 * result + ( getStdfehler() == null ? 0 : this.getStdfehler().hashCode() );
         result = 37 * result + ( getBemerkung() == null ? 0 : this.getBemerkung().hashCode() );
         result = 37 * result + ( getUferablinks() == null ? 0 : this.getUferablinks().hashCode() );
         result = 37 * result + ( getLinksabst() == null ? 0 : this.getLinksabst().hashCode() );
         return result;
   }
}

http://dive4elements.wald.intevation.org