⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 leaseresponsemsg.java

📁 JXTA&#8482 is a set of open, generalized peer-to-peer (P2P) protocols that allow any networked devi
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
     *     *  @return The servers advertisement.     */    public RdvAdvertisement getServerAdv() {        return serverAdv;    }        /**     *  Returns the advertisement generation of the server's advertisement.     *     *  @return The advertisement generation of the server's advertisement.     */    public UUID getServerAdvGen() {        return serverAdvGen;    }        /**     *  Returns the advertisement expiration duration of the server's      *  advertisement. Must be a positive integer.     *     *  @return The advertisement expiration duration of the server's advertisement.     */    public long getServerAdvExp() {        return serverAdvExp;    }        /**     *  Sets the server advertisement and the associated advertisement      *  generation and expiration.     *     *  @param serverAdv The servers advertisement.     *  @param serverAdvGen The advertisement generation of the server's      *  advertisement. Must be a positive integer.     *  @param serverAdvExp The advertisement expiration duration of the      *  server's advertisement.     */    public void setServerAdv(RdvAdvertisement serverAdv, UUID serverAdvGen, long serverAdvExp) {        this.serverAdv = serverAdv;        this.serverAdvGen = serverAdvGen;        this.serverAdvExp = serverAdvExp;    }        /**     *  Returns an ordered list of the referral advertisements.     *     *  @return An ordered list of the referral advertisements.     */    public RdvAdvertisement[] getReferralAdvs() {        return referralAdvs.toArray(new RdvAdvertisement[referralAdvs.size()]);    }        /**     *  Returns an ordered list of the referral advertisements expirations. The     *  order of the expirations matches the order of advertisements returned     *  by {@link #getReferralAdvs()}. Each entry is a positive integer.     *     *  @return An ordered list of the referral advertisements expirations.     */    public Long[] getReferralAdvExps() {        return referralAdvExps.toArray(new Long[referralAdvExps.size()]);    }        /**     *  Adds a referral advertisement to the collection of referral      *  advertisements. The advertisement is added at the end of the ordered     *  list.     *     *  @param referralAdv The referral advertisement.     *  @param referralAdvExp The expiration time of the referral advertisement.     *  The value must be a positive integer.     */    public void addReferralAdv(RdvAdvertisement referralAdv, long referralAdvExp) {        referralAdvs.add(referralAdv);        referralAdvExps.add(referralAdvExp);    }        /**     *  Adds referral advertisements to the collection of referral      *  advertisements. The advertisements are added at the end of the ordered      *  list.     *     *  @param referralAdvs The referral advertisements.     *  @param referralAdvExps The expiration times of the referral advertisement.     *  The values must be a positive integer.     */    public void addReferralAdvs(List<RdvAdvertisement> referralAdvs, List<Long> referralAdvExps) {        this.referralAdvs.addAll(referralAdvs);        this.referralAdvExps.addAll(referralAdvExps);    }        /**     *  Clears the list of referral advertisements.     */    public void clearReferralAdvs() {        referralAdvs.clear();        referralAdvExps.clear();    }        /**     *  Returns the lease being offered. The value must be greater than or     *  equal to zero or the constant {@code Long.MIN_VALUE} which indicates     *  that no lease is being offered.     *     *  @return The lease being offered.     */    public long getOfferedLease() {        return offeredLease;    }        /**     *  Sets the lease being offered. The value must be greater than or     *  equal to zero or the constant {@code Long.MIN_VALUE} which indicates     *  that no lease is being offered.     *     *  @param offeredLease The lease being offered.     */    public void setOfferedLease(long offeredLease) {        this.offeredLease = offeredLease;    }        /**     *  Returns the credential of the server providing this response in XML      *  format.     *     *  @return The credential associated with this response if any. May be      *  {@code null} to indicate that no credential was provided.     */    public XMLElement getCredential() {        return (XMLElement) ((null != credential) ? StructuredDocumentUtils.copyAsDocument(credential) : null);    }        /**     *  Sets the credential of the server providing this response in XML      *  format.     *     *  @param newCred The credential associated with this response if any. May      *  be {@code null} to indicate that no credential is being provided.     */    public void setCredential(XMLElement newCred) {        this.credential = (XMLElement) ((null != newCred) ? StructuredDocumentUtils.copyAsDocument(newCred) : null);    }        /**     *  Our DOCTYPE     *     *  @return the type of this message.     */    public static String getMessageType() {        return "jxta:LeaseResponseMsg";    }        /**     *  Process an element of the message XML document.     *     *  @param elem The element to process.     *  @return If {@code true} then the element was processed otherwise {@code false}.     */    protected boolean handleElement(XMLElement elem) {                if (SERVER_ADV_TAG.equals(elem.getName())) {            Enumeration eachAttr = elem.getAttributes();                        while (eachAttr.hasMoreElements()) {                Attribute anAdvAttr = (Attribute) eachAttr.nextElement();                                if (ADV_GEN_ATTR.equals(anAdvAttr.getName())) {                    serverAdvGen = UUID.fromString(anAdvAttr.getValue());                } else if (ADV_EXP_ATTR.equals(anAdvAttr.getName())) {                    serverAdvExp = Long.valueOf(anAdvAttr.getValue());                } else if ("type".equals(anAdvAttr.getName())) {                    ;                } else if ("xmlns:jxta".equals(anAdvAttr.getName())) {                    ;                } else {                    if (Logging.SHOW_WARNING && LOG.isLoggable(Level.WARNING)) {                        LOG.warning("Unhandled Attribute: " + anAdvAttr.getName());                    }                }            }                        serverAdv = (RdvAdvertisement) AdvertisementFactory.newAdvertisement(elem);            return true;        } else if (REFERRAL_ADV_TAG.equals(elem.getName())) {            long expiration = Long.MIN_VALUE;                        Enumeration eachAttr = elem.getAttributes();                        while (eachAttr.hasMoreElements()) {                Attribute anAdvAttr = (Attribute) eachAttr.nextElement();                                if (ADV_EXP_ATTR.equals(anAdvAttr.getName())) {                    expiration = Long.valueOf(anAdvAttr.getValue());                } else if ("type".equals(anAdvAttr.getName())) {                    ;                } else if ("xmlns:jxta".equals(anAdvAttr.getName())) {                    ;                } else {                    if (Logging.SHOW_WARNING && LOG.isLoggable(Level.WARNING)) {                        LOG.warning("Unhandled Attribute: " + anAdvAttr.getName());                    }                }            }                        if (Long.MIN_VALUE == expiration) {                throw new IllegalArgumentException("Missing Referral Advertisement Expiration.");            }                        if (expiration <= 0) {                throw new IllegalArgumentException("Illegal Referral Advertisement Expiration.");            }                        RdvAdvertisement referralAdv = (RdvAdvertisement) AdvertisementFactory.newAdvertisement(elem);                        // Fix the embedded Route Adv. Often it does not contain a PeerID            // in the route because its redundant.            referralAdv.getRouteAdv().setDestPeerID(referralAdv.getPeerID());            referralAdvs.add(referralAdv);            referralAdvExps.add(expiration);            return true;        } else if (SERVER_CRED_TAG.equals(elem.getName())) {            credential = (XMLElement) StructuredDocumentUtils.copyAsDocument(elem);                        return true;        }                return false;    }        /**     *  {@inheritDoc}     */    public Document getDocument(MimeMediaType mediaType) {        if (null == serverID) {            throw new IllegalStateException("Missing Server ID.");        }                if ((null != serverAdv) && (null == serverAdvGen)) {            throw new IllegalStateException("Missing Server Advertisement Generation.");        }                if ((null != serverAdv) && (Long.MIN_VALUE == serverAdvExp)) {            throw new IllegalStateException("Missing Server Advertisement Expiration.");        }                if ((null != serverAdv) && (serverAdvExp <= 0)) {            throw new IllegalStateException("Illegal Server Advertisement Expiration.");        }                if ((offeredLease < 0) && (Long.MIN_VALUE != offeredLease)) {            throw new IllegalStateException("Illegal Lease offered.");        }                StructuredDocument msg = StructuredDocumentFactory.newStructuredDocument(mediaType, getMessageType());                if (!(msg instanceof Attributable)) {            throw new UnsupportedOperationException("Only 'Attributable' document types are supported.");        }                if (msg instanceof XMLDocument) {            ((XMLDocument) msg).addAttribute("xmlns:jxta", "http://jxta.org");        }                ((Attributable) msg).addAttribute(SERVER_ID_ATTR, getServerID().toString());                if (Long.MIN_VALUE != offeredLease) {            ((Attributable) msg).addAttribute(OFFERED_LEASE_ATTR, Long.toString(getOfferedLease()));        }                if (null != credential) {            StructuredDocumentUtils.copyElements(msg, msg, credential, SERVER_CRED_TAG);        }                Element e;                if (null != serverAdv) {            e = StructuredDocumentUtils.copyElements(msg, msg, (StructuredDocument) serverAdv.getDocument(mediaType)                    ,                    SERVER_ADV_TAG);                        if (null != getServerAdvGen()) {                ((Attributable) e).addAttribute(ADV_GEN_ATTR, getServerAdvGen().toString());            }                        if (Long.MIN_VALUE != getServerAdvExp()) {                ((Attributable) e).addAttribute(ADV_EXP_ATTR, Long.toString(getServerAdvExp()));            }        }                Iterator<Long> eachReferralAdvExp = referralAdvExps.iterator();        for (RdvAdvertisement aReferralAdv : referralAdvs) {            e = StructuredDocumentUtils.copyElements(msg, msg, (StructuredDocument) aReferralAdv.getDocument(mediaType)                    ,                    REFERRAL_ADV_TAG);                        long expiration = eachReferralAdvExp.next();                        if (Long.MIN_VALUE == expiration) {                throw new IllegalStateException("Missing Referral Advertisement Expiration.");            }                        if (expiration <= 0) {                throw new IllegalStateException("Illegal Referral Advertisement Expiration.");            }                        ((Attributable) e).addAttribute(ADV_EXP_ATTR, Long.toString(expiration));        }                return msg;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -