// Copyright (c) 2010 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. package org.chromium.debug.core.model; import org.chromium.sdk.Script; import org.chromium.sdk.util.BasicUtil; /** * Id of resources loaded in V8 VM. We only know that they may have name (typically filename or * URL) and/or numerical id. */ public class VmResourceId { public static VmResourceId forScript(final Script script) { return new VmResourceId(script.getName(), script.getId()); } private final String name; private final Object id; public VmResourceId(String name, Object id) { this.name = name; this.id = id; } public String getName() { return name; } public Object getId() { return id; } @Override public int hashCode() { return BasicUtil.hashCode(getName()) + 31 * BasicUtil.hashCode(getId()); } @Override public boolean equals(Object obj) { if (obj == this) { return true; } if (obj instanceof VmResourceId == false) { return false; } VmResourceId other = (VmResourceId) obj; return BasicUtil.eq(this.name, other.name) && BasicUtil.eq(this.id, other.id); } @Override public String toString() { return "<" + name + " : " + id + ">"; } public String getVisibleName() { String name = getName(); if (name != null) { return name; } return "<unnamed # " + getId() + ">"; } }