195640e3a20adea634b4df4ccf8c93f411184c438joi@chromium.org#!/usr/bin/env python 295640e3a20adea634b4df4ccf8c93f411184c438joi@chromium.org# Copyright (c) 2012 The Chromium Authors. All rights reserved. 301b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org# Use of this source code is governed by a BSD-style license that can be 401b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org# found in the LICENSE file. 501b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 601b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org'''Container nodes that don't have any logic. 701b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org''' 801b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 901b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 1001b3bc768461bd303bff39f8cd1663682254e407joi@chromium.orgfrom grit.node import base 1101b3bc768461bd303bff39f8cd1663682254e407joi@chromium.orgfrom grit.node import include 1201b3bc768461bd303bff39f8cd1663682254e407joi@chromium.orgfrom grit.node import structure 1301b3bc768461bd303bff39f8cd1663682254e407joi@chromium.orgfrom grit.node import message 1401b3bc768461bd303bff39f8cd1663682254e407joi@chromium.orgfrom grit.node import io 1501b3bc768461bd303bff39f8cd1663682254e407joi@chromium.orgfrom grit.node import misc 1601b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 1701b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 1801b3bc768461bd303bff39f8cd1663682254e407joi@chromium.orgclass GroupingNode(base.Node): 1901b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org '''Base class for all the grouping elements (<structures>, <includes>, 2001b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org <messages> and <identifiers>).''' 2101b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org def DefaultAttributes(self): 2201b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org return { 2301b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 'first_id' : '', 2401b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 'comment' : '', 2501b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 'fallback_to_english' : 'false', 26ec8016c73b3b945b6284746230913d88653f35e7benrg@chromium.org 'fallback_to_low_resolution' : 'false', 2701b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org } 2801b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 2901b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 3001b3bc768461bd303bff39f8cd1663682254e407joi@chromium.orgclass IncludesNode(GroupingNode): 3101b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org '''The <includes> element.''' 3201b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org def _IsValidChild(self, child): 330b961d0af2fe00a650a882b13752e46c8aef3710benrg@chromium.org return isinstance(child, (include.IncludeNode, misc.IfNode, misc.PartNode)) 3401b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 3501b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 3601b3bc768461bd303bff39f8cd1663682254e407joi@chromium.orgclass MessagesNode(GroupingNode): 3701b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org '''The <messages> element.''' 3801b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org def _IsValidChild(self, child): 390b961d0af2fe00a650a882b13752e46c8aef3710benrg@chromium.org return isinstance(child, (message.MessageNode, misc.IfNode, misc.PartNode)) 4001b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 4101b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 4201b3bc768461bd303bff39f8cd1663682254e407joi@chromium.orgclass StructuresNode(GroupingNode): 4301b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org '''The <structures> element.''' 4401b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org def _IsValidChild(self, child): 450b961d0af2fe00a650a882b13752e46c8aef3710benrg@chromium.org return isinstance(child, (structure.StructureNode, 460b961d0af2fe00a650a882b13752e46c8aef3710benrg@chromium.org misc.IfNode, misc.PartNode)) 4701b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 4801b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 4901b3bc768461bd303bff39f8cd1663682254e407joi@chromium.orgclass TranslationsNode(base.Node): 5001b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org '''The <translations> element.''' 5101b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org def _IsValidChild(self, child): 520b961d0af2fe00a650a882b13752e46c8aef3710benrg@chromium.org return isinstance(child, (io.FileNode, misc.IfNode, misc.PartNode)) 5301b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 5401b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 5501b3bc768461bd303bff39f8cd1663682254e407joi@chromium.orgclass OutputsNode(base.Node): 5601b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org '''The <outputs> element.''' 5701b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org def _IsValidChild(self, child): 580b961d0af2fe00a650a882b13752e46c8aef3710benrg@chromium.org return isinstance(child, (io.OutputNode, misc.IfNode, misc.PartNode)) 5901b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 6001b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org 6101b3bc768461bd303bff39f8cd1663682254e407joi@chromium.orgclass IdentifiersNode(GroupingNode): 6201b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org '''The <identifiers> element.''' 6301b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org def _IsValidChild(self, child): 6401b3bc768461bd303bff39f8cd1663682254e407joi@chromium.org return isinstance(child, misc.IdentifierNode) 65