/********************************************************************************
 * Copyright (c) 2015-2018 Contributors to the Eclipse Foundation
 *
 * See the NOTICE file(s) distributed with this work for additional
 * information regarding copyright ownership.
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License v. 2.0 which is available at
 * http://www.eclipse.org/legal/epl-2.0.
 *
 * SPDX-License-Identifier: EPL-2.0
 *
 ********************************************************************************/

export class FileExplorerRow {
    filename: string;
    description: string;
    type: string;
    size: string;
    // remotePath is unique for one file-attachable MDM object
    // and is used as identifier: fileExplorerRow <-> MDMLink
    remotePath: string;

    constructor (remotePath: string, filename: string, description: string, type: string, size: string) {
        this.remotePath = remotePath;
        this.filename = filename;
        this.description = description;
        this.type = type;
        this.size = size;
    }
}
