/*
* Copyright (C) 2010-2016 JPEXS, All rights reserved.
*
* 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 3.0 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 library.
*/
package com.jpexs.decompiler.flash.abc.types;
import com.jpexs.decompiler.flash.abc.avm2.AVM2ConstantPool;
import com.jpexs.helpers.Helper;
/**
*
* @author JPEXS
*/
public class MetadataInfo {
public int name_index;
public int[] keys;
public int[] values;
public MetadataInfo() {
this.name_index = 0;
this.keys = new int[0];
this.values = new int[0];
}
public MetadataInfo(int name_index, int[] keys, int[] values) {
this.name_index = name_index;
this.keys = keys;
this.values = values;
}
@Override
public String toString() {
return "name_index=" + name_index + " keys=" + Helper.intArrToString(keys) + " values=" + Helper.intArrToString(values);
}
public String toString(AVM2ConstantPool constants) {
StringBuilder sb = new StringBuilder();
sb.append("name=").append(constants.getString(name_index));
if (keys.length > 0) {
sb.append("\r\n");
}
for (int i = 0; i < keys.length; i++) {
if (keys[i] == 0) {
sb.append("\"").append(constants.getString(values[i])).append("\"\r\n");
} else {
sb.append("\"").append(constants.getString(keys[i])).append("\"=\"").append(constants.getString(values[i])).append("\"\r\n");
}
}
return sb.toString();
}
}