/*
 * Copyright (c) 2014 Google Inc.
 *
 * All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse
 * Public License v1.0 which accompanies this distribution, and is available at
 *
 * http://www.eclipse.org/legal/epl-v10.html
 */
package com.google.eclipse.protobuf.preferences.descriptor;

/**
 * Preference names for descriptor proto preferences.
 */
public final class PreferenceNames {
  public static final String DEFAULT_DESCRIPTOR_PATH = "google/protobuf/descriptor.proto";
  public static final String DESCRIPTOR_PROTO_PATH = "descriptor.path";

  private PreferenceNames() {}
}
