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

📄 flags.java

📁 java Email you can use it to send email to others
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
	}    }    /**     * Check whether the specified system flag is present in this Flags object.     *     * @return 		true of the given flag is present, otherwise false.     */    public boolean contains(Flag flag) {	return (system_flags & flag.bit) != 0;    }    /**     * Check whether the specified user flag is present in this Flags object.     *     * @return 		true of the given flag is present, otherwise false.     */    public boolean contains(String flag) {	if (user_flags == null) 	    return false;	else	    return user_flags.containsKey(flag.toLowerCase(Locale.ENGLISH));    }    /**     * Check whether all the flags in the specified Flags object are     * present in this Flags object.     *     * @return	true if all flags in the given Flags object are present,      *		otherwise false.     */    public boolean contains(Flags f) {	// Check system flags	if ((f.system_flags & system_flags) != f.system_flags)	    return false;	// Check user flags	if (f.user_flags != null) {	    if (user_flags == null)		return false;	    Enumeration e = f.user_flags.keys();	    while (e.hasMoreElements()) {		if (!user_flags.containsKey(e.nextElement()))		    return false;	    }	}	// If we've made it till here, return true	return true;    }    /**     * Check whether the two Flags objects are equal.     *     * @return	true if they're equal     */    public boolean equals(Object obj) {	if (!(obj instanceof Flags))	    return false;	Flags f = (Flags)obj;	// Check system flags	if (f.system_flags != this.system_flags)	    return false;	// Check user flags	if (f.user_flags == null && this.user_flags == null)	    return true;	if (f.user_flags != null && this.user_flags != null &&		f.user_flags.size() == this.user_flags.size()) {	    Enumeration e = f.user_flags.keys();	    while (e.hasMoreElements()) {		if (!this.user_flags.containsKey(e.nextElement()))		    return false;	    }	    return true;	}	return false;    }    /**     * Compute a hash code for this Flags object.     *     * @return	the hash code     */    public int hashCode() {	int hash = system_flags;	if (user_flags != null) {	    Enumeration e = user_flags.keys();	    while (e.hasMoreElements())		hash += ((String)e.nextElement()).hashCode();	}	return hash;    }    /**     * Return all the system flags in this Flags object.  Returns     * an array of size zero if no flags are set.     *     * @return	array of Flags.Flag objects representing system flags     */    public Flag[] getSystemFlags() {	Vector v = new Vector();	if ((system_flags & ANSWERED_BIT) != 0)	    v.addElement(Flag.ANSWERED);	if ((system_flags & DELETED_BIT) != 0)	    v.addElement(Flag.DELETED);	if ((system_flags & DRAFT_BIT) != 0)	    v.addElement(Flag.DRAFT);	if ((system_flags & FLAGGED_BIT) != 0)	    v.addElement(Flag.FLAGGED);	if ((system_flags & RECENT_BIT) != 0)	    v.addElement(Flag.RECENT);	if ((system_flags & SEEN_BIT) != 0)	    v.addElement(Flag.SEEN);	if ((system_flags & USER_BIT) != 0)	    v.addElement(Flag.USER);	Flag[] f = new Flag[v.size()];	v.copyInto(f);	return f;    }    /**     * Return all the user flags in this Flags object.  Returns     * an array of size zero if no flags are set.     *     * @return	array of Strings, each String represents a flag.     */    public String[] getUserFlags() {	Vector v = new Vector();	if (user_flags != null) {	    Enumeration e = user_flags.elements();	    while (e.hasMoreElements())		v.addElement(e.nextElement());	}	String[] f = new String[v.size()];	v.copyInto(f);	return f;    }    /**     * Returns a clone of this Flags object.     */    public Object clone() {	Flags f = null;	try {	    f = (Flags)super.clone();	} catch (CloneNotSupportedException cex) {	    // ignore, can't happen	}	if (this.user_flags != null && f != null)	    f.user_flags = (Hashtable)this.user_flags.clone();	return f;    }    /*****    public static void main(String argv[]) throws Exception {	// a new flags object	Flags f1 = new Flags();	f1.add(Flags.Flag.DELETED);	f1.add(Flags.Flag.SEEN);	f1.add(Flags.Flag.RECENT);	f1.add(Flags.Flag.ANSWERED);	// check copy constructor with only system flags	Flags fc = new Flags(f1);	if (f1.equals(fc) && fc.equals(f1))	    System.out.println("success");	else	    System.out.println("fail");	// check clone with only system flags	fc = (Flags)f1.clone();	if (f1.equals(fc) && fc.equals(f1))	    System.out.println("success");	else	    System.out.println("fail");	// add a user flag and make sure it still works right	f1.add("MyFlag");	// shouldn't be equal here	if (!f1.equals(fc) && !fc.equals(f1))	    System.out.println("success");	else	    System.out.println("fail");	// check clone	fc = (Flags)f1.clone();	if (f1.equals(fc) && fc.equals(f1))	    System.out.println("success");	else	    System.out.println("fail");	// make sure user flag hash tables are separate	fc.add("AnotherFlag");	if (!f1.equals(fc) && !fc.equals(f1))	    System.out.println("success");	else	    System.out.println("fail");	// check copy constructor	fc = new Flags(f1);	if (f1.equals(fc) && fc.equals(f1))	    System.out.println("success");	else	    System.out.println("fail");	// another new flags object	Flags f2 = new Flags(Flags.Flag.ANSWERED);	f2.add("MyFlag");	if (f1.contains(Flags.Flag.DELETED))	    System.out.println("success");	else	    System.out.println("fail");			if (f1.contains(Flags.Flag.SEEN))	    System.out.println("success");	else	    System.out.println("fail");	if (f1.contains(Flags.Flag.RECENT))	    System.out.println("success");	else	    System.out.println("fail");	if (f1.contains("MyFlag"))	    System.out.println("success");	else	    System.out.println("fail");	if (f2.contains(Flags.Flag.ANSWERED))	    System.out.println("success");	else	    System.out.println("fail");	System.out.println("----------------");	String[] s = f1.getUserFlags();	for (int i = 0; i < s.length; i++)	    System.out.println(s[i]);	System.out.println("----------------");	s = f2.getUserFlags();	for (int i = 0; i < s.length; i++)	    System.out.println(s[i]);	System.out.println("----------------");	if (f1.contains(f2)) // this should be true	    System.out.println("success");	else	    System.out.println("fail");	if (!f2.contains(f1)) // this should be false	    System.out.println("success");	else	    System.out.println("fail");	Flags f3 = new Flags();	f3.add(Flags.Flag.DELETED);	f3.add(Flags.Flag.SEEN);	f3.add(Flags.Flag.RECENT);	f3.add(Flags.Flag.ANSWERED);	f3.add("ANOTHERFLAG");	f3.add("MYFLAG");	f1.add("AnotherFlag");	if (f1.equals(f3))	    System.out.println("equals success");	else	    System.out.println("fail");	if (f3.equals(f1))	    System.out.println("equals success");	else	    System.out.println("fail");	System.out.println("f1 hash code " + f1.hashCode());	System.out.println("f3 hash code " + f3.hashCode());	if (f1.hashCode() == f3.hashCode())	    System.out.println("success");	else	    System.out.println("fail");    }    ****/}

⌨️ 快捷键说明

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