You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
2.8 KiB
80 lines
2.8 KiB
/**
|
|
* EmbedEntry
|
|
* Copyright 2012 by Michael Peter Christen, mc@yacy.net, Frankfurt am Main, Germany
|
|
* First released 27.04.2012 at http://yacy.net
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public License
|
|
* along with this program in the file lgpl21.txt
|
|
* If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
package net.yacy.document.parser.html;
|
|
|
|
import net.yacy.cora.document.id.DigestURL;
|
|
|
|
public class EmbedEntry {
|
|
|
|
private final DigestURL url;
|
|
private final int width, height;
|
|
private final String type, pluginspage;
|
|
|
|
public EmbedEntry(final DigestURL url, int width, int height, String type, String pluginspage) {
|
|
this.url = url;
|
|
this.width = width;
|
|
this.height = height;
|
|
this.type = type;
|
|
this.pluginspage = pluginspage;
|
|
}
|
|
|
|
public DigestURL getUrl() {
|
|
return this.url;
|
|
}
|
|
|
|
public final int getWidth() {
|
|
return this.width;
|
|
}
|
|
|
|
public final int getHeight() {
|
|
return this.height;
|
|
}
|
|
|
|
public final String getType() {
|
|
return this.type;
|
|
}
|
|
|
|
public final String getPluginspage() {
|
|
return this.pluginspage;
|
|
}
|
|
|
|
@Override
|
|
public String toString() {
|
|
return "<embed url=\"" + this.url.toNormalform(false) + "\"" +
|
|
(this.type != null && this.type.length() > 0 ? " type=\"" + this.type + "\"" : "") +
|
|
(this.pluginspage != null && this.pluginspage.length() > 0 ? " pluginspage=\"" + this.pluginspage + "\"" : "") +
|
|
(this.width >= 0 ? " width=\"" + this.width + "\"" : "") +
|
|
(this.height >= 0 ? " height=\"" + this.height + "\"" : "") +
|
|
">";
|
|
}
|
|
|
|
@Override
|
|
public int hashCode() {
|
|
// if htmlFilterImageEntry elements are stored in a TreeSet, the biggest images shall be listed first
|
|
// this hash method therefore tries to compute a 'perfect hash' based on the size of the images
|
|
// unfortunately it can not be ensured that all images get different hashes, but this should appear
|
|
// only in very rare cases
|
|
if (this.width < 0 || this.height < 0)
|
|
return /*0x7FFF0000 |*/ (this.url.hashCode() & 0xFFFF);
|
|
return ((0x7FFF - (((this.width * this.height) >> 9) & 0x7FFF)) << 16) | (this.url.hashCode() & 0xFFFF);
|
|
}
|
|
}
|